如何在 Airflow 中重启 DAG?

How to restart DAG in Airflow?

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

这是一个示例,其中第一个任务已完成,其余任务正在排队或没有状态:

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

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

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

我是 运行ning Airflow 1.9.0.

听起来你需要从失败的任务开始一个 dag。

不要进入 DAG 并单击任务并单击 运行,而是转到包含失败任务的 Dag 运行,单击失败任务并单击清除。

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

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

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

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

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

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