У меня есть задача:
@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()
Я использую сельдерей с включенным брокером mongodb и бэкэндом результатов mongodb.
Когда вызывается метод повтора ()задачи, ни из условного оператора, ни после перехвата исключения, задача не повторяется.
в рабочем терминале я получаю такое сообщение:
[2012-08-10 19:21:54,909: INFO/MainProcess] Task request_task[badb3131-8964-41b5-90a7-245a8131e68d] retry: Task can be retried
Что может быть не так?
ОБНОВЛЕНИЕ:Наконец, я не решил этот вопрос, и мне пришлось использовать цикл while внутри задачи, поэтому мои задачи никогда не повторяются.