Задача на основе класса 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