Airflow UI上で実行中のタスクを停止/終了するにはどうすればよいですか?LocalExecutorを使用しています。 CeleryExecutor を使用しても、実行中のタスクを停止/終了させることはできますか?
を使用しています。 CeleryExecutor
DAGs画面では、実行中のタスクが確認できます。
![ここに画像の説明を入力][1]。
例のように
Recent Tasks'で、実行中のアイコンを押すと、Airflowは自動的にDag IdとStateを 'running' に指定して検索クエリを実行し、タスクインスタンス画面に結果を表示します(手動でBrowse > Task Instancesタブで見つけることができます)。
そこで、提示されたタスクを選択し、別の状態に設定したり、削除したりすることができます。
DAGが現在稼働している場合、削除したタスクはAirflowスケジューラによって再び起動されることに注意してください。そのため、まずDAGを停止して状態を変更するか、スケジューラーを停止します(テスト環境で実行している場合)。
エアフローギター(@villasv)より
優雅ではありません。ダグを停止(実行中のマークを外す)してタスクの状態をクリアしたり、UIで削除することも可能です。実際に実行中のタスクは停止しませんが、 しかし、実行者がデータベースにもうないことを認識した場合、強制終了する可能性があります。
PabloとJorgeが言ったように、Dagを一時停止しても、すでに実行が始まっている場合は、タスクの実行を停止することはできません。しかし、UIから実行中のタスクを停止する方法はありますが、少し面倒です。
タスクが running 状態のときに CLEAR をクリックすると、 job.kill() が呼び出され、タスクは shut_down に設定されてすぐに up_for_retry に移動するので、タスクは停止します。
running
CLEAR
job.kill()
shut_down
up_for_retry
明らかにAirflowは実行中のタスクをクリアすることを意図していませんでしたが、Airflowはそれを無効化もしなかったので、私が提案したように使うことができます。Airflow は CLEAR を failed や up_for_retry などと一緒に使うことを意図していました... 将来的には、コミュニティがこのバグ(?)を利用して、"shut down task"ボタンで機能として実装してくれるかもしれませんね。
実行中
failed
DAGs画面では、実行中のタスクが確認できます。
![ここに画像の説明を入力][1]。
例のように
Recent Tasks'で、実行中のアイコンを押すと、Airflowは自動的にDag IdとStateを 'running' に指定して検索クエリを実行し、タスクインスタンス画面に結果を表示します(手動でBrowse > Task Instancesタブで見つけることができます)。
そこで、提示されたタスクを選択し、別の状態に設定したり、削除したりすることができます。
DAGが現在稼働している場合、削除したタスクはAirflowスケジューラによって再び起動されることに注意してください。そのため、まずDAGを停止して状態を変更するか、スケジューラーを停止します(テスト環境で実行している場合)。
エアフローギター(@villasv)より
PabloとJorgeが言ったように、Dagを一時停止しても、すでに実行が始まっている場合は、タスクの実行を停止することはできません。しかし、UIから実行中のタスクを停止する方法はありますが、少し面倒です。
タスクが
running
状態のときにCLEAR
をクリックすると、job.kill()
が呼び出され、タスクはshut_down
に設定されてすぐにup_for_retry
に移動するので、タスクは停止します。明らかにAirflowは
実行中
のタスクをクリアすることを意図していませんでしたが、Airflowはそれを無効化もしなかったので、私が提案したように使うことができます。Airflow はCLEAR
をfailed
やup_for_retry
などと一緒に使うことを意図していました... 将来的には、コミュニティがこのバグ(?)を利用して、"shut down task"ボタンで機能として実装してくれるかもしれませんね。