【问题标题】:How to restart DAG in Airflow?如何在 Airflow 中重启 DAG?
【发布时间】:2018-02-14 16:14:54
【问题描述】:

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

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

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

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

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

我正在运行 Airflow 1.9.0。

【问题讨论】:

标签: airflow airflow-scheduler


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 我认为 #2 行不通.. 至少在 1.10.15 上不行。最好在树视图或任务实例中清除任务。
    猜你喜欢
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    相关资源
    最近更新 更多