Быстрый старт¶
Для начала, установите фрейморк через pip
:
$ pip install "propan[async-redis]"
---> 100%
Tip
Для работы проекта запустите тестовый контейнер с брокером
docker run -d --rm -p 6379:6379 --name test-mq redis
$ pip install "propan[async-rabbit]"
---> 100%
Tip
Для работы проекта запустите тестовый контейнер с брокером
docker run -d --rm -p 5672:5672 --name test-mq rabbitmq
$ pip install "propan[async-kafka]"
---> 100%
Tip
Для работы проекта запустите тестовый контейнер с брокером
docker run -d --rm -p 9092:9092 --name test-mq \
-e KAFKA_ENABLE_KRAFT=yes \
-e KAFKA_CFG_NODE_ID=1 \
-e KAFKA_CFG_PROCESS_ROLES=broker,controller \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
bitnami/kafka
$ pip install "propan[async-sqs]"
---> 100%
Tip
Для работы проекта запустите тестовый контейнер с брокером
docker run -d --rm -p 9324:9324 --name test-mq softwaremill/elasticmq-native
$ pip install "propan[async-nats]"
---> 100%
Tip
Для работы проекта запустите тестовый контейнер с брокером
docker run -d --rm -p 4222:4222 --name test-mq nats -js
Базовое использование¶
Создайте приложение со следующим кодом в serve.py
файле:
serve.py | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
serve.py | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
serve.py | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
serve.py | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
serve.py | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
И просто запустите его:
$ propan run serve:app
2023-04-10 23:39:41,145 INFO - Propan app starting...
2023-04-10 23:39:41,151 INFO - `base_handler` waiting for messages
2023-04-10 23:39:41,152 INFO - Propan app started successfully! To exit press CTRL+C
Готовый шаблон проекта¶
Вы можете сгенерировать готовый к использованию шаблон проекта с помощью Propan CLI:
$ propan create async [broker] [projectname]
Create Propan project template at: /home/user/projectname
Note
Для запуска, шаблон требует установки pydantic[dotenv]
А теперь просто запустите сгенерированный проект
### Run rabbimq first
$ docker compose --file [projectname]/docker-compose.yaml up -d [broker]
### Run project
$ propan run [projectname].app.serve:app --env=.env --reload
2023-04-10 23:39:41,140 INFO - Started reloader process [115536] using WatchFiles
2023-04-10 23:39:41,145 INFO - Propan app starting...
2023-04-10 23:39:41,151 INFO - `base_handler` waiting for messages
2023-04-10 23:39:41,152 INFO - Propan app started successfully! To exit press CTRL+C
Наслаждайтесь новым опытом разработки!
Не забудьте остановить тестовый контейнер
docker container stop test-mq