给定两个条件,即只有在所有父项都执行完之后且任何父项发生故障的情况下,如何触发气流中的任务?

时间:2019-07-15 11:25:01

标签: airflow

我有一个气流任务(例如taskA),其中有很多父任务。我希望仅在任何父任务失败以及所有父任务执行完成的条件下才触发taskA。

我已经经历了所有触发规则,但没有一个满足我的要求。我不希望使用触发规则one_failed来触发任务,因为即使所有父任务都已完成,它也会触发taskA。我可以使用一些组合或触发规则之类的东西吗?

1 个答案:

答案 0 :(得分:0)

是“全部失败”。我们需要将所有父项(任务[A-Z])路由到介于两者之间的任务(任务BW),该任务的触发规则为无失败。如果我们的任何父母(任务[A-Z])失败,则taskBW将进入上游失败状态,然后将触发具有all_failed的trigger_rule的任务BW的子任务(例如taskIfParentFailed)将被触发。 如果task [A-Z]中没有失败,则taskBW将通过且taskIfParentFailed将不执行,并且您可以让其他子任务与其他规则一起执行。