基于 Celery class 的任务未重试

Celery class based task is not retrying

我有一个基于 class 的芹菜任务定义如下:

class MyTask(Task):  
    name = "MY_TASK"
    autoretry_for = (Exception, )
    retry_kwargs = {'max_retries': 5}
    retry_backoff = True
    retry_backoff_max = 700
    retry_jitter = False

    def run(self, service, *args, **kwargs):
        pass
        # do something
        # return some value

    def on_failure(self, exc, task_id, args, kwargs, einfo):
        # can extend failure method if needed
        super().on_failure(exc, task_id, args, kwargs, einfo)


app.tasks.register(MyTask())

我的任务执行得很完美。但是出现异常时,任务没有重试

我的celery版本是4.4.2
python 版本是 3.8.2

这是芹菜中的一个错误,已在 PR 中修复:https://github.com/celery/celery/pull/6233