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