Задача на основе класса сельдерея не повторяется, когда autoretry_for установлен - PullRequest
0 голосов
/ 24 февраля 2020

Задача на основе класса Celery не удаляется автоматически при настройке autoretry_for.

import celery

class SaveImageUrl(celery.Task):
    autoretry_for = (TypeError,)
    retry_kwargs = {'max_retries': 5, 'countdown': 5}


    def run(self, message_id: str) -> None:
        ...
        raise TypeError


SaveImageUrl = app.register_task(SaveImageUrl())  # here app is celery app


#calling task
SaveImageUrl.apply_async(args=(1,))

Однако это работает для задач на основе функций:

@shared_task(bind=True, autoretry_for=(TypeError,), retry_kwargs={'max_retries': 3, 'countdown': 2})
def save_image_url(self, message_id: str):
    ...
    raise TypeError


#calling task
save_image_url.apply_async(args=(1,))

Версия Celery: 4.4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...