如何在Airflow中重启DAG?

时间:2018-02-14 16:14:55

标签: airflow airflow-scheduler

由于数据库关闭,我的一个有许多步骤的DAG在中途停止。我想让DAG从它停止的地方开始,但我所能做的就是逐一启动DAG的各项任务。有没有办法告诉Airflow根据已经完成的任务的成功启动它停止的DAG?

这是一个示例,其中一个第一个任务完成,其余任务排队或没有状态: enter image description here

当我点击单个任务(runme_1)时,我可以重新启动它: enter image description here

但是,如果我尝试启动一个没有满足其依赖关系的任务(例如run_after_loop),我会看到以下错误消息: enter image description here

我希望能够点击任何任务,让它排队并让所有依赖项以正确的顺序运行。这可能吗?

我正在运行Airflow 1.9.0。

2 个答案:

答案 0 :(得分:6)

听起来你需要从失败的任务开始唠叨。

不是进入DAG并单击任务并单击“运行”,而是使用失败的任务转到Dag运行,单击失败的任务并单击“清除”。

清除任务将重新运行任务,之后的任何其他任务都将运行。

答案 1 :(得分:5)

要添加到@jhnclvr,您可能还希望:

  1. 转到浏览>任务实例,过滤并选择失败的任务,然后删除。这与在DAG图或树视图中清除单个任务基本相同。

  2. 转到浏览> DAG运行,过滤并选择失败的DAG,并将状态设置为“正在运行”。如果失败的任务导致DAG失败,则需要执行此操作,因为您将看到树视图顶部的圆形红色圆圈表示,因为如果DAG失败,任务将不会自动重新运行。

  3. 这将从第一个不成功的任务开始自动触发DAG重新运行。

    为了尽量减少将来的人工干预,您可能希望调整失败的操作员的配置 - 例如重试,超时,重试延迟等。