我用branchpythonperator任务创建了dag,它调用了两个任务。一项任务将被跳过,一项将被执行。执行此任务后,dag必须执行另一个任务。 对于此任务,我使用触发规则all_done,然后尝试none_failed。这两个规则的行为非常相似。有什么区别?
答案 0 :(得分:1)
ALL_DONE:所有任务均已完成,即处于以下状态之一:成功,失败,跳过或上游失败 NONE_FAILED:所有任务均未失败,即处于以下状态之一:成功,已跳过
对于您的方案,尝试使两者之间的任务之一失败,并观察行为上的差异。触发规则为all_done的任务将启动,而触发规则为'none_failed'的任务将不会启动。
为进一步参考,请查看Trigger_Rule的源代码(第187行至198行将回答您的问题):https://github.com/apache/airflow/blob/master/airflow/ti_deps/deps/trigger_rule_dep.py#L187