FastAPI + Taskiq: отложенные задачи и asyncio
Описание
Подключаем Taskiq + RabbitMQ к нашему FastAPI приложению.
В отличие от Celery, Taskiq позволяет запускать задачи с asyncio.
Помимо этого очевидного плюса у Taskiq ещё много преимуществ: использование аннотаций типов, чтобы нам было легче писать код, улучшенная производительность в сравнении с Celery и Dramatiq, а также интеграции с FastAPI, FastStream, aiohttp, aiogram.
В этом видео смотрим на Taskiq + aio-pika, не используем интеграции.
=== Правки ===
Лучше и надежнее применять настройки логгинга в стартапе брокера.
Для брокеров есть механизм, схожий с lifespan: https://taskiq-python.github.io/guide/state-and-deps.html#state
Так что можно сделать вот так:
```python
@broker.on_event(TaskiqEvents.WORKER_STARTUP)
async def startup(state: TaskiqState) -﹥ None:
logging.basicConfig(...)
```
Вот тут изменение в коде:
https://github.com/mahenzon/FastAPI-base-app/commit/db1f74282f4ecb00518c179190f6877f9a2b7102
Ещё, в связке с FastAPI лучше использовать taskiq_fastapi. Так можно будет переиспользовать зависимости из FastAPI в тасках. Например, чтобы было удобнее ходить в БД.
Похоже, что нужен ещё один ролик по Taskiq 🙂
======
Ранний доступ к моей новой образовательной программе про полный цикл разработки веб-приложений на Python (скидка по ссылке): https://stepik.org/a/232803/pay?promo=40b2fd9952f9efa3
Общение и самые свежие анонсы в Телеграм: https://t.me/Khorenyan
Телеграм чат для бустеров (любой уровень) https://boosty.to/mahenzon
Все-все ссылки на все мои площадки: https://taplink.cc/mahenzon
Код тут:
https://github.com/mahenzon/FastAPI-base-app/tree/e9488ae6970c55ffc818ad7e282ec64f152284f1
Документация:
https://taskiq-python.github.io/
Метки:
00:00 Привет
00:50 Установка
03:22 Подготовка
06:25 Экземпляр
08:30 Настройки
11:03 startup и shutdown
12:47 Задача на отправку письма
23:10 Запуск воркера
26:57 Логирование
30:44 Итоги
Автор

Похожие видео

29 - Introduction

Процессы, формирующие качество продукции общественного питания

52. Controlling the number of Parameters

Основы твёрдого бизнеса первые шаги к стабильному успеху

Угол между биссектрисами

17. Getting Started with Entity Framework

11-Photography-JoelMeyerowitz-BlackAndWhiteVSColor-HD
