清除下游任务后如何运行上游任务?

时间:2019-07-19 06:44:07

标签: airflow

我有一个问题,即使清除了子任务,我也需要运行父母。例如:如果我有A->B->C->D->E->F,如果任务E失败并且已被某个人手动清除,那么任务A也应自动清除。我不确定是否有任何直接方法可以实现这一目标。

3 个答案:

答案 0 :(得分:0)

这不能通过气流完成。 气流执行DAG(有向无环图),因此DAG中不能包含这种模式。

答案 1 :(得分:0)

您无法使用这种类型的模式,您将获得异常

AirflowDagCycleException: Cycle detected in DAG

但是半自动解决方案/解决方法如何。假设您具有DAG结构,其中任务F是任务AE的下游。即this is how your DAG will look like

A -> B -> C -> D -> E -> F
A -> F

现在,如果任务F失败,则需要先暂停DAG ,然后递归清除任务A without recursion并清除任务F 。在这种情况下,任务F不能在其两个父级都处于成功状态之前开始运行。因此,任务A将被触发,但任务B - E不会被触发,因为您尚未清除任务的状态成功

答案 2 :(得分:0)

这可能发生。您可以在任务级别设置on_failure_callback参数。此函数可以是任何代码。在该功能中,您可以轻松清除以前的任务,然后再次运行它们。