DevOps и инфраструктура Celery 5

Celery

Распределённая очередь задач для асинхронной обработки и периодических заданий в Python.

Что это

Celery — фоновые задачи, периодические задания (Celery Beat) и распределённые вычисления для Django и FastAPI. Использует Redis или RabbitMQ как брокер сообщений.

Celery 5 поддерживает Python 3.8+, улучшенный мониторинг через Flower, canvas-примитивы (chain, group, chord) для оркестрации задач. По сравнению с Dramatiq и Huey, Celery предлагает самую зрелую экосистему и нативную интеграцию с Django. По сравнению с asyncio для фоновых задач, Celery обеспечивает persistence (задачи не теряются при перезагрузке), retry-механизмы и горизонтальное масштабирование через добавление воркеров.

Ключевые возможности

Фоновые задачи

Тяжёлые операции выполняются асинхронно — веб-сервер не блокируется. Retry с exponential backoff обеспечивает устойчивость к временным сбоям.

Celery Beat

Периодические задания по расписанию — cron на стероидах. Поддерживает crontab, solar и interval расписания с точностью до секунды.

Масштабирование

Горизонтальное масштабирование — добавьте воркеров при росте нагрузки. Canvas-примитивы (chain, group, chord) позволяют оркестрировать сложные workflow.

Почему мы используем

Celery выносит тяжёлые операции из веб-запроса: отправка email, генерация PDF, обработка изображений, вызовы AI API. Пользователь не ждёт — задача выполняется в фоне.

Мы выбираем Celery с Redis-брокером для большинства проектов. Redis уже есть в стеке для кеширования, добавление Celery не требует дополнительной инфраструктуры. Для AI-задач (вызовы LLM, генерация изображений) фоновая обработка критична — ответ от OpenAI API занимает 5-30 секунд, веб-сервер не должен ждать.

Сильные стороны

Надёжность

Retry, ack/nack, dead letter queue — задачи не теряются.

Интеграция

Нативная поддержка Django и Flask, легко интегрируется с FastAPI.

Наш опыт

Celery используется в наших Django и FastAPI проектах для фоновых задач: отправка уведомлений, генерация отчётов, AI-обработка, периодические ETL-задания через Celery Beat.

В проекте Oil-Game Celery обрабатывает аукционы: каждый раунд запускается по таймеру через Beat, фоновые задачи обрабатывают ставки и обновляют результаты. Distributed locks через Redis предотвращают дублирование при перезапуске.

Для каких задач применяем

  • Фоновая обработка (email, PDF, AI)
  • Периодические задания (ETL, отчёты)
  • Распределённые вычисления

Проекты с использованием Celery

AI-Director

SaaS-платформа для интеллектуального анализа компаний, поиска подрядчиков и генерации досье на персон с использованием нескольких …

Подробнее
CRM для B2B продаж

Кастомная CRM-система для управления сложными B2B-продажами с длинным циклом сделки.

Подробнее
Должная осмотрительность

Сервис автоматической проверки контрагентов: интеграция с ВОК API (СБИС), фоновый мониторинг по данным 1С, парсинг …

Подробнее
Корпоративная CRM

Полнофункциональная CRM-система для управления клиентами, сделками, задачами и аналитикой продаж с гибкой настройкой под бизнес-процессы. …

Подробнее
Обсудить задачу Рассчитать ROI