如果条件不满足,我想明确地让任务失败。示例:
@app.task(bind=True, name="task.my_task", max_retries=2)
def my_task(self, filename):
result = get_result(filename)
if result is None:
self.update_state(task_id=self.request.id, state=states.FAILURE, meta="result is None")
raise Ignore()
return result
日志显示“任务 task.my_task[855c1cbc-e894-409f-af29-d70a35d86e34] 已忽略”
但是,这是行不通的。当我查看 task.state
时,它处于 PENDING 状态。花说 my_task state == STARTED
(它卡在那里)。
我错过了什么吗?我如何使 celery 任务失败?
最佳答案
要使任务失败,只需说let_it_fail
@app.task(bind=True, name="task.my_task", max_retries=2)
def my_task(self, filename):
result = get_result(filename)
if result is None:
self.update_state(task_id=self.request.id, state=states.FAILURE, meta="result is None")
raise let_it_fail
return result
关于python - 明确失败 celery 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44993313/