使用python 2.7运行Airflow 1.9.0。我如何优雅地阻止DAG?
在这种情况下,我有一个正在运行带有错误代码的文件上传的DAG,导致所有内容都需要4倍的时间,而且我真的不想等待一天才能最终超时(超时)设定为10小时)。
DAG查找tar文件。当它找到一个时,它遍历tar中的每个文件,寻找要处理的文件,并处理它们。
我找不到任何阻止DAG的方法。我尝试点击“DAG Runs”列中的“Running”圆圈(右边一个)。它让我选择进程并将其标记为“失败”。但它并没有停止运行。
我尝试点击“近期任务”栏目中的“正在运行”圈子(左侧)。它允许我选择流程,但尝试将它们设置为归档(或成功),在Airflow中生成异常
答案 0 :(得分:1)
浏览-> DAG运行->复选框->选中“删除”
答案 1 :(得分:0)
如果您按照听起来的方式构建过程,则无法将其从Airflow中停止。您需要找到正在执行的进程标识符并强制终止它以使其实际停止。
答案 2 :(得分:0)
您可以添加与要杀死的Task并行运行的Sensor Operator。
传感器应监视某些变量的值,并且在检测到变量中的某个值(例如“ STOP”)时应完成操作。
传感器后面应有一个BashOperator任务,该任务应使用以下命令杀死长时间运行的任务:
kill -9 $(ps -ef | grep | grep | grep -v grep | awk'{print $ 2;}')