状況によっては、そのタスク内からセロリのタスクを失敗させたいと思っています。私は次のことを試してみました:タスク内からセロリのタスクを失敗させる方法は?
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に成功しました:タスクの実行中に、それが完了すると状態のみを変更することができるように思わ
偽 - セロリはそれがあると考えるものは何でも状態が変化は(this question参照)結果です。タスクを失敗したことをセラーに返すように、例外を発生させてタスクを失敗させることなく、何らかの方法がありますか?
は、あなたのコード内から例外を発生しようとしたことがあり:
FAILURE
とタスクの状態を更新し、任意の値を返すことに成功し、一例として、タスクを記録しますので、その後、Ignore
例外を発生させるのですか? – hymloth@hymloth例外が発生すると、実際にはタスクが失敗します。これには、毎回電子メールが送信されます。これは避けたいものです。申し訳ありませんが、私は今質問を変更しました。 – Meilo