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结构,其中taskF
是taska
和E
的下游。i、 e
现在,如果任务
F
失败,您需要首先暂停DAG,然后清除任务A
,并使用递归清除任务F
。在这种情况下,任务F
在其双亲都处于成功状态之前无法开始运行。因此,任务A
将被触发,但任务B-E
不会被触发,因为您尚未清除它们的状态,即成功。您不能拥有这种类型的模式,您将获得异常
AirflowDagCycleException: Cycle detected in DAG
但是,半自动解决方案/变通方法又如何呢。假设您有一个DAG结构,其中taskF
是taska
和E
的下游。i、 e
现在,如果任务
F
失败,您需要首先暂停DAG,然后清除任务A
,并使用递归清除任务F
。在这种情况下,任务F
在其双亲都处于成功状态之前无法开始运行。因此,任务A
将被触发,但任务B-E
不会被触发,因为您尚未清除它们的状态,即“成功”。这可能会发生。您可以在任务级别设置on_failure_回调参数。此函数可以是任何代码。在该功能中,您可以轻松地清除以前的任务并让它们再次运行 这可能发生。您可以在任务级别设置on_failure_回调参数。此函数可以是任何代码。在该功能中,您可以轻松地清除以前的任务并让它们再次运行