首页 > 解决方案 > 基于芹菜类的任务没有重试

问题描述

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

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

标签: pythonpython-3.xcelerycelery-task

解决方案


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


推荐阅读