Airflow 当下游任务已被清除时,如何运行上游任务?

Airflow 当下游任务已被清除时,如何运行上游任务?,airflow,Airflow,我遇到一个问题,即即使子任务已被清除,我也需要运行父任务。例如:如果我有A->B->C->D->E->F,如果任务E失败并且已经被某个人手动清除,那么任务A也应该被自动清除。我不确定是否有任何直接的方法来实现这一点。这不能通过气流来实现。 气流执行DAG(有向无环图),DAG中不能有这种图案。这不能通过气流来完成。 如果执行DAG(有向无环图),则DAG中不能有此类图案。您不能有此类图案,并且会出现异常 AirflowDagCycleException: Cycle detected in DA

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

这不能通过气流来实现。
气流执行DAG(有向无环图),DAG中不能有这种图案。

这不能通过气流来完成。
如果执行DAG(有向无环图),则DAG中不能有此类图案。

您不能有此类图案,并且会出现异常

AirflowDagCycleException: Cycle detected in DAG
但是,半自动解决方案/变通方法又如何呢。假设您有一个DAG结构,其中task
F
是task
a
E
的下游。i、 e


现在,如果任务
F
失败,您需要首先暂停DAG,然后清除任务
A
,并使用递归清除任务
F
。在这种情况下,任务
F
在其双亲都处于成功状态之前无法开始运行。因此,任务
A
将被触发,但任务
B-E
不会被触发,因为您尚未清除它们的状态,即成功。

您不能拥有这种类型的模式,您将获得异常

AirflowDagCycleException: Cycle detected in DAG
但是,半自动解决方案/变通方法又如何呢。假设您有一个DAG结构,其中task
F
是task
a
E
的下游。i、 e


现在,如果任务
F
失败,您需要首先暂停DAG,然后清除任务
A
,并使用递归清除任务
F
。在这种情况下,任务
F
在其双亲都处于成功状态之前无法开始运行。因此,任务
A
将被触发,但任务
B-E
不会被触发,因为您尚未清除它们的状态,即“成功”。

这可能会发生。您可以在任务级别设置on_failure_回调参数。此函数可以是任何代码。在该功能中,您可以轻松地清除以前的任务并让它们再次运行

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