Примеры¶
Запускаемые проекты лежат в examples/ в репозитории. CI прогоняет тесты каждого примера на пакете из того же коммита, так что они не ломаются незаметно; Docker-образы ставят соответствующий релиз с PyPI.
FastAPI¶
examples/fastapi: сервис заказов.
POST /ordersзаписывает заказ и ставитorders.confirmв одной транзакции: упавший запрос не оставляет ни заказа, ни задания.- Воркер подтверждает заказ и ставит
orders.receiptв очередьmailв той же транзакции, что переводит задание вsucceeded(complete_tx). setup_db.py— шаг деплоя:migrate, затем таблицы самого приложения.test_example.pyвызывает API черезhttpxи выполняет задания черезdrain.compose.ymlподнимает Postgres, шаг настройки, API и воркер на обе очереди.
cd examples/fastapi
docker compose up --build
curl -X POST localhost:8000/orders -H 'content-type: application/json' -d '{"email": "ada@example.com"}'
curl localhost:8000/orders/1