celery 任务安排不同?

时间:2021-04-05 14:38:31

标签: django django-celery celerybeat

我有一个计划的 Celery 任务,每 30 分钟通过 API 获取一些数据。但是,如果它崩溃或没有新数据,我希望任务再重试 5 次,然后完全停止,即(它不应再每 30 分钟后执行一次)。

我的代码如下:

@app.task(autoretry_for=(Exception,), retry_kwargs={'max_retries': 5}, retry_backoff=True)
def my_func():
   print('retrying')
   try:
       # do something
       print('i update')
   except Exception as exc:
       print("i don't update")

芹菜配置:

app.conf.beat_schedule = {
    'my_func': {
        'task': 'app.tasks.my_func',
        'schedule': 1800.0
    },
}

我注意到任务在 30 分钟后没有停止执行。 我哪里出错了?

0 个答案:

没有答案