由于数据库关闭,我的一个有许多步骤的DAG在中途停止。我想让DAG从它停止的地方开始,但我所能做的就是逐一启动DAG的各项任务。有没有办法告诉Airflow根据已经完成的任务的成功启动它停止的DAG?
这是一个示例,其中一个第一个任务完成,其余任务排队或没有状态:
但是,如果我尝试启动一个没有满足其依赖关系的任务(例如run_after_loop
),我会看到以下错误消息:
我希望能够点击任何任务,让它排队并让所有依赖项以正确的顺序运行。这可能吗?
我正在运行Airflow 1.9.0。
答案 0 :(得分:6)
听起来你需要从失败的任务开始唠叨。
不是进入DAG并单击任务并单击“运行”,而是使用失败的任务转到Dag运行,单击失败的任务并单击“清除”。
清除任务将重新运行任务,之后的任何其他任务都将运行。
答案 1 :(得分:5)
要添加到@jhnclvr,您可能还希望:
转到浏览>任务实例,过滤并选择失败的任务,然后删除。这与在DAG图或树视图中清除单个任务基本相同。
转到浏览> DAG运行,过滤并选择失败的DAG,并将状态设置为“正在运行”。如果失败的任务导致DAG失败,则需要执行此操作,因为您将看到树视图顶部的圆形红色圆圈表示,因为如果DAG失败,任务将不会自动重新运行。
这将从第一个不成功的任务开始自动触发DAG重新运行。
为了尽量减少将来的人工干预,您可能希望调整失败的操作员的配置 - 例如重试,超时,重试延迟等。