G
enby!

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

Моя огромная образовательная программа про полный цикл разработки веб-приложений на Python: https://taplink.cc/suren
Подключаем Taskiq + RabbitMQ к нашему FastAPI приложению. В отличие от Celery, Taskiq позволяет запускать задачи с asyncio. Помимо этого очевидного плюса у Taskiq ещё много преимуществ: использование аннотаций типов, чтобы нам было легче писать код, улучшенная производительность в сравнении с Celery и Dramatiq, а также интеграции с FastAPI, FastStream, aiohttp, aiogram. В этом видео смотрим на Taskiq + aio-pika, не используем интеграции. === Правки === Лучше и надежнее применять настройки логгинга в стартапе брокера. Для брокеров есть механизм, схожий с lifespan: https://taskiq-python.github.io/guide...
Так что можно сделать вот так: @broker.on_event(TaskiqEvents.WORKER_STARTUP) async def startup(state: TaskiqState): logging.basicConfig(...) Вот тут изменение в коде: https://github.com/mahenzon/FastAPI-b...
Ещё, в связке с FastAPI лучше использовать taskiq_fastapi. Так можно будет переиспользовать зависимости из FastAPI в тасках. Например, чтобы было удобнее ходить в БД. Похоже, что нужен ещё один ролик по Taskiq 🙂 ====== Ранний доступ к моей новой образовательной программе про полный цикл разработки веб-приложений на Python (скидка по ссылке): https://stepik.org/a/232803/pay?promo...
Общение и самые свежие анонсы в Телеграм: https://t.me/Khorenyan
Телеграм чат для бустеров (любой уровень) https://boosty.to/mahenzon
Все-все ссылки на все мои площадки: https://taplink.cc/mahenzon
Код тут: https://github.com/mahenzon/FastAPI-b...
Документация: 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 Итоги

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