状況によっては、そのタスク内からセロリ タスクを失敗させたいと考えています。私は次のことを試しました:
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
タスクの実行中にのみ状態を変更できるようで、タスクが完了すると、セロリは状態を結果と見なすものに変更します(この質問を参照してください)。例外を発生させてタスクを失敗させることなく、タスクが失敗したことをセロリに返す方法はありますか?