You need to enable JavaScript to run this app. Airflow DAG触发规则配置问题:task d、e触发条件未达预期
优惠活动
大模型
产品
解决方案
定价
更多

Airflow DAG触发规则配置问题:task d、e触发条件未达预期

问题原因

你当前的配置问题出在任务e的上游依赖配置不全:

  • 现有代码里t_e的上游只有t_d,所以all_success规则仅会校验t_d的执行状态,完全不关心t_b、t_c是否成功
  • 即使t_b或t_c执行失败,只要t_d执行成功,t_e就会被触发,不符合你要求的「b、c、d全部成功才执行e」的需求

调整方案

只需要补全t_e的上游依赖,把t_b、t_c也加入t_e的上游即可,修改后的完整代码如下:

from airflow.utils.trigger_rule import TriggerRule

with DAG(dag_id='test_dag', default_args=args, schedule_interval=None) as dag:
   t_test = PythonOperator(task_id='test', python_callable=test)
   t_a = PythonOperator(task_id='a', python_callable=a)
   t_b = PythonOperator(task_id='b', python_callable=b)
   t_c = PythonOperator(task_id='c', python_callable=c)
   # t_d的trigger_rule=ALL_DONE配置正确,不管b/c成功失败都执行
   t_d = PythonOperator(task_id='d', python_callable=d, trigger_rule=TriggerRule.ALL_DONE)
   # t_e默认trigger_rule就是all_success,无需额外配置
   t_e = PythonOperator(task_id='e', python_callable=e)

# 原有依赖保留
t_test >> t_a >> [t_b, t_c] >> t_d
# 补全e的上游依赖:b、c、d都作为e的上游
[t_b, t_c, t_d] >> t_e

调整后逻辑完全匹配需求:

  • 无论t_b/t_c成功/失败,t_d的ALL_DONE规则都会触发执行
  • t_e的上游是t_b、t_c、t_d三个,三个全部执行成功才会触发t_e

内容的提问来源于stack exchange,提问作者Nikhil Kokkula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 22:45:04