Карточка Middle Celery и очереди обновлено

Ретраи в Celery

Вопрос

Как настроить автоматические ретраи задачи Celery?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

@sharedtask(autoretryfor=(ConnectionError,), retrybackoff=True, retrybackoffmax=600, retryjitter=True, maxretries=5) или вручную raise self.retry(exc=exc, countdown=...) в задаче с bind=True.

Ответ

@shared_task(autoretry_for=(ConnectionError,), retry_backoff=True, retry_backoff_max=600, retry_jitter=True, max_retries=5) или вручную raise self.retry(exc=exc, countdown=...) в задаче с bind=True.

Разбор

retry_backoff даёт экспоненциальную задержку, retry_jitter добавляет случайность, чтобы задачи не повторялись волной одновременно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.