我有一个任务:
@celery.task(name='request_task',default_retry_delay=2,acks_late=True)
def request_task(data):
try:
if some_condition:
request_task.retry()
except Exception as e:
request_task.retry()
我使用 celery 和 mongodb 代理并启用了 mongodb 结果后端。
当调用任务的 retry() 方法时,无论是从条件语句还是在捕获异常之后,都不会重试该任务。
在工人的终端我收到这样的消息:
[2012-08-10 19:21:54,909: INFO/MainProcess] 任务 request_task[badb3131-8964-41b5-90a7-245a8131e68d] 重试:可以重试任务
有什么问题?
更新:最后,我没有解决这个问题,不得不在任务中使用 while 循环,所以我的任务永远不会重试。