← Ко всем open source проектам

Celery

celery/celery

Celery — распределенная очередь задач для Python с воркерами, брокерами и планированием.

Форки 5,084
Автор celery
Язык Python
Лицензия NOASSERTION
Обновлено 2026-06-27

Кратко

Celery выносит долгие и фоновые операции из веб-запроса: задачи отправляются в брокер, воркеры выполняют их отдельно, а приложение остается отзывчивым.

Что это такое

Celery — система распределенных задач для Python. Она помогает запускать фоновые работы, очереди, периодические задания и обработку событий вне основного процесса приложения.

Что внутри

Проект поддерживает брокеры вроде RabbitMQ и Redis, воркеры, результаты задач, retry-поведение и планировщик. Документация отдельно описывает очереди, задания и интеграции.

Как используют

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

Пример

Фоновая задача

Пример показывает форму Celery-задачи: приложение отправляет работу в очередь, а воркер выполняет ее отдельно.

Язык: Python
from celery import Celery

app = Celery("jobs", broker="redis://localhost:6379/0")

@app.task
def send_digest(user_id: int) -> str:
    return f"digest sent to {user_id}"

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

Сильная сторона Celery — зрелая модель фоновой работы. Она давно используется в Python-проектах и хорошо подходит для систем, где задач много и они разные.

Ограничения

Ограничение — операционная сложность. Появляются брокер, воркеры, повторные попытки, идемпотентность и наблюдение за очередями; это нужно проектировать, а не просто включить пакет.

Контекст проекта

Celery ведется в репозитории celery/celery; публичная история проекта начинается 2009-04-24. Основной язык в метаданных — Python, лицензия — NOASSERTION. У проекта есть отдельный сайт: https://docs.celeryq.dev.

Этот контекст помогает читать страницу как разбор конкретного репозитория: у проекта есть владелец, техническая база, лицензия, история изменений и реальные ограничения выбранной экосистемы.

Celery стоит оценивать через конкретный сценарий: кто будет поддерживать инструмент, где он встраивается в существующий стек, какие обновления придется отслеживать и что произойдет при ошибке. Такой взгляд лучше простой установки ради популярности, потому что открытый проект приносит пользу только тогда, когда его место в системе понятно команде.

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