我想使用BashOperator
为我的execution_timeout
设置一个特定的超时时间,但是我注意到它提高了AirflowTaskTimeout
。
我要寻找的是在超时的情况下执行某种行为,然后从下一个任务继续执行DAG。我可以使用bash timeout
,但是我正在寻找对相同功能的内部Airflow支持。
Airflow支持吗?
答案 0 :(得分:0)
气流的概念是Trigger Rules。您可以将trigger_rule=one_failed
或trigger_rule=all_done
传递到下一个任务。您可以拥有2个直接依赖于第一个任务的任务。
例如:
task_a >> task_b (trigger_rule='all_success') >> task_d (trigger_rule='one_success')
task_a >> task_c (trigger_rule='all_failed') >> task_d (trigger_rule='one_success')
从文档中
所有运算符都有一个trigger_rule
参数,该参数定义触发生成的任务的规则。 trigger_rule
的默认值为all_success
,可以将其定义为“当所有直接上游任务都成功时触发此任务”。这里描述的所有其他规则都是基于直接父任务,并且是在创建任务时可以传递给任何运算符的值:
all_success
:(默认)所有父母都成功all_failed
:所有父母均处于失败或上游失败状态all_done
:所有父母都已执行死刑one_failed
:至少有一位父母失败后立即解雇,它不会等待所有父母都完成one_success
:至少一位父母成功后就会解雇,它不会等待所有父母都完成none_failed
:所有父母都没有失败(失败或上游失败),即所有父母都成功或被跳过了dummy
:相关性仅用于显示,可以随意触发