我一直在搜索,但是找不到满意的答案。
我正在使用Celery v4.1.0和python 2.7.12。
我在CELERYBEAT_SCHEDULE中有一个共享任务定义为周期任务:
@shared_task(max_retries=5)
def test_task_retry():
num_retries = test_task_retry.request.retries
seconds_to_wait = 2.0 ** num_retries
raise test_task_retry.retry(countdown=seconds_to_wait)
CELERYBEAT_SCHEDULE = {
'test_task_retry': {
'task': 'app.tasks.test_task_retry',
'schedule': crontab(hour=15, minute=00),
},
}
发生异常时,我只会看到“可以重试任务”,但从未真正重试过任务。
我在某处读到它可能是因为没有task_id。如何定义task_id?
此外,此模式在我所有不是计划任务的共享任务中也能很好地工作。
最好