Проверяет знание системы асинхронных задач и принципов её работы.
Celery — брокер задач для Python, который позволяет выполнять функции в фоновом режиме. Приложение отправляет задачу в очередь (Redis, RabbitMQ), воркеры её забирают и выполняют, результат можно хранить в backend (Redis, БД).
Компоненты:
Producer: ваше приложение, вызывающее task.delay().
Broker: Redis или RabbitMQ, хранит очереди задач.
Worker: процессы/потоки, выполняющие задачи из очереди.
Result Backend: куда сохраняются результаты (.get()).
Жизненный цикл задачи:
Producer ставит задачу в очередь.
Broker распределяет задачи между воркерами.
Worker выполняет функцию.
Результат посылается в backend.
Конфигурация:
from celery import Celery
app = Celery('tasks', broker='redis://localhost', backend='redis://localhost')
@app.task
def add(x, y):
return x + yМасштабирование:
Горизонтальное через запуск нескольких воркеров или пул процессов/тредов.
Мониторинг через Flower.