FastAPI + Taskiq: отложенные задачи и asyncio

Моя огромная образовательная программа про полный цикл разработки веб-приложений на Python:
Подключаем Taskiq + RabbitMQ к нашему FastAPI приложению. В отличие от Celery, Taskiq позволяет запускать задачи с asyncio. Помимо этого очевидного плюса у Taskiq ещё много преимуществ: использование аннотаций типов, чтобы нам было легче писать код, улучшенная производительность в сравнении с Celery и Dramatiq, а также интеграции с FastAPI, FastStream, aiohttp, aiogram. В этом видео смотрим на Taskiq + aio-pika, не используем интеграции. === Правки === Лучше и надежнее применять настройки логгинга в стартапе брокера. Для брокеров есть механизм, схожий с lifespan:
Так что можно сделать вот так: @broker.on_event(TaskiqEvents.WORKER_STARTUP) async def startup(state: TaskiqState): logging.basicConfig(...) Вот тут изменение в коде:
Ещё, в связке с FastAPI лучше использовать taskiq_fastapi. Так можно будет переиспользовать зависимости из FastAPI в тасках. Например, чтобы было удобнее ходить в БД. Похоже, что нужен ещё один ролик по Taskiq 🙂 ====== Ранний доступ к моей новой образовательной программе про полный цикл разработки веб-приложений на Python (скидка по ссылке):
Общение и самые свежие анонсы в Телеграм:
Телеграм чат для бустеров (любой уровень)
Все-все ссылки на все мои площадки:
Код тут:
Документация:
Метки: 00:00 Привет 00:50 Установка 03:22 Подготовка 06:25 Экземпляр 08:30 Настройки 11:03 startup и shutdown 12:47 Задача на отправку письма 23:10 Запуск воркера 26:57 Логирование 30:44 Итоги

Смотрите также