如何从UI停止/终止Airflow任务

时间:2017-04-26 10:33:29

标签: python apache hadoop airflow apache-airflow

如何在Airflow UI上停止/终止正在运行的任务?我正在使用LocalExecutor。 即使我使用CeleryExecutor,如何杀死/停止正在运行的任务呢?

5 个答案:

答案 0 :(得分:10)

在DAGs屏幕中,您可以看到正在运行的任务:

enter image description here

Example

在“近期任务”上按下运行图标,Airflow将自动运行搜索查询,其中Dag Id和State的过滤器等于“正在运行”,并在“任务实例”屏幕上显示结果(您可以在选项卡浏览>任务实例)。

在那里,您可以选择显示的任务并将其设置为其他状态或删除它们。

请注意,如果DAG当前正在运行,Airflow调度程序将再次启动您删除的任务。因此,要么首先通过更改其状态来停止DAG,要么停止调度程序(如果您在测试环境中运行)。

答案 1 :(得分:4)

将任务简单地设置为失败状态将停止正在运行的任务。

[2019-09-17 23:53:28,040] {logging_mixin.py:82} INFO - [2019-09-17 23:53:28,039] {jobs.py:2695} WARNING - State of this instance has been externally set to failed. Taking the poison pill.
[2019-09-17 23:53:28,041] {helpers.py:240} INFO - Sending Signals.SIGTERM to GPID 20977

答案 2 :(得分:3)

来自气流gitter(@villasv)

  

不优雅,不。您可以停止dag(取消标记为正在运行)并清除任务状态,甚至可以在UI中删除它们。执行程序中的实际运行任务不会停止,但如果执行程序意识到它不再在数据库中,则可能会被终止。

答案 3 :(得分:1)

正如Pablo和Jorge所说,如果执行已经开始,则暂停Dag不会停止执行任务。但是,有一种方法可以从UI停止正在运行的任务,但这有点麻烦。

当任务处于running状态时,您可以单击CLEAR,这将调用job.kill(),任务将设置为shut_down并移至up_for_retry立即停止。

很明显,Airflow并不意味着您要清除处于Running状态的任务,但是由于Airflow并未禁用它,您也可以按照我的建议使用它。气流意味着CLEAR将与failedup_for_retry等一起使用...在将来,社区可能会使用此bug(?)并将其实现为具有“关闭任务”功能“按钮。

答案 4 :(得分:0)

将任务设置为失败状态:

  1. 点击任务 enter image description here

  2. 将任务设置为“失败”状态 enter image description here

  3. 所有后续任务(如果有)也将标记为失败: enter image description here