我有一个计划的 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 分钟后没有停止执行。 我哪里出错了?