在某些情况下,我想让 celery 任务在该任务中失败。我尝试了以下方法:
from celery.task import task
from celery import states
@task()
def run_simulation():
if some_condition:
run_simulation.update_state(state=states.FAILURE)
return False
但是,该任务仍然报告已成功:
任务sim.tasks.run_simulation[9235e3a7-c6d2-4219-bbc7-acf65c816e65] 1.17847704887s成功:False
似乎只能在任务运行时修改状态并且一旦完成 - 芹菜将状态更改为它认为是结果的任何内容(请参阅this question)。有什么方法可以在不通过引发异常而使任务失败的情况下使 celery 返回任务失败的情况?