Airflow UIで実行中のタスクを停止/強制終了するにはどうすればよいですか? LocalExecutor
を使用しています。 CeleryExecutor
を使用している場合でも、実行中のタスクを強制終了/停止するにはどうすればよいですか?
[DAG]画面で、実行中のタスクを確認できます。
「最近のタスク」で実行中のアイコンを押すと、Airflowは「実行中」に等しいDag IdとStateのフィルターを使用して検索クエリを自動的に実行し、タスクインスタンス画面に結果を表示します(参照タブで手動で検索できます) >タスクインスタンス)。
そこで提示されたタスクを選択して、それらを別の状態に設定したり、削除したりできます。
DAGが現在実行されている場合、Airflowスケジューラーは削除したタスクを再び開始することに注意してください。そのため、最初にDAGの状態を変更して停止するか、スケジューラーを停止します(テスト環境で実行している場合)。
気流の溝から(@villasv)
優雅ではありませんDAGを停止して(実行中としてマーク解除)、タスクの状態をクリアするか、UIでタスクの状態を削除することもできます。 executorで実際に実行されているタスクは停止しませんただし、executorがデータベースに存在しないことに気付いた場合は強制終了される可能性があります。
PabloとJorgeによって一時停止されているように、Dagを一時停止しても、実行が既に開始されている場合、タスクの実行は停止しません。ただし、UIから実行中のタスクを停止する方法はありますが、少しハックです。
タスクがrunning
状態にあるとき、CLEAR
をクリックできます。これによりjob.kill()
が呼び出され、タスクはshut_down
に設定され、すぐにup_for_retry
に移動されて停止します。
明らかに、AirflowはRunning
状態のタスクをクリアすることを意図していませんでしたが、Airflowはそれを無効にしないため、私が提案したように使用することもできます。 AirflowはCLEAR
、up_for_retry
などでfailed
を使用することを意味していました...将来、コミュニティはこのバグを使用し(「?」)、「タスクをシャットダウン」ボタンで機能として実装するでしょう。