Celery выполняет и координирует фоновые задачи, RabbitMQ передаёт сообщения о них между приложением и worker-ами. Брокер отделяет постановку задачи от её выполнения.
Зачем в проекте был нужен RabbitMQ вместе с Celery?
Celery выполняет и координирует фоновые задачи, RabbitMQ передаёт сообщения о них между приложением и worker-ами. Брокер отделяет постановку задачи от её выполнения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Celery выполняет и координирует фоновые задачи, RabbitMQ передаёт сообщения о них между приложением и worker-ами. Брокер отделяет постановку задачи от её выполнения.
Например, HTTP-запрос создаёт задачу формирования отчёта и быстро возвращает идентификатор, а worker выполняет её позже. Очереди позволяют распределять нагрузку, назначать разные пулы и переживать временную недоступность исполнителей при корректной настройке устойчивости.
Нужно отдельно выбрать момент подтверждения, retry и идемпотентность. RabbitMQ не обязан хранить результат выполнения — для этого у Celery может быть другой backend. На интервью приведите фактическую задачу проекта, не приписывая ему неизвестную конфигурацию.