Как в Celery устроен паттерн Canvas (Chords и Chains) и как брокер координирует завершение параллельных задач?

Canvas описывает композицию задач: chain выполняет шаги последовательно, group запускает набор, chord добавляет callback после группы. Завершение координируют Celery и result backend, а не брокер сам по себе.

Короткий ответ

Что ответить на собеседовании

Canvas описывает композицию задач: chain выполняет шаги последовательно, group запускает набор, chord добавляет callback после группы. Завершение координируют Celery и result backend, а не брокер сам по себе.

Подробный разбор

Ответ с пояснениями

Canvas описывает композицию задач: chain выполняет шаги последовательно, group запускает набор, chord добавляет callback после группы. Завершение координируют Celery и result backend, а не брокер сам по себе.

Chain обычно передаёт результат предыдущего шага следующему; immutable signature позволяет не принимать его автоматически. Chord требует поддерживаемого backend и сохранения результатов нужных задач. Способ синхронизации зависит от backend: polling или специальные счётчики. Нужно продумать сбои, повторное выполнение и обработку ошибок callback. Блокирующий get результата внутри worker может привести к исчерпанию пула и не заменяет Canvas.

Источник: docs.celeryq.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее