Airflow BranchDateTimeOperator上下界判断逻辑及分支执行问题
BranchDateTimeOperator边界判断逻辑
BranchDateTimeOperator的时间区间判断采用左闭右开规则:
- 对下界
target_lower的判断为大于等于(>=):执行时间 ≥ target_lower 时才满足下界要求 - 对上界
target_upper的判断为严格小于(<):执行时间 < target_upper 时才满足上界要求
只有执行时间同时满足上下界要求时,才会走follow_task_ids_if_true配置的分支,否则走follow_task_ids_if_false配置的分支。
给定配置的分支规则
提供的配置参数对应规则如下:
- 开启
use_task_execution_date=True,判断基准为任务逻辑执行日期(即ds对应的时间),和任务实际运行时间无关 target_lower=None即不设下界,所有时间都默认满足下界要求target_upper=datetime(2022, 5, 20)未指定时分秒,实际等价于2022-05-20 00:00:00- 走
task_a的触发条件:执行时间 < 2022-05-20 00:00:00 - 走
task_b的触发条件:执行时间 ≥ 2022-05-20 00:00:00
各时间点执行结果
- 执行时间为
datetime(2022, 5, 19)(即2022-05-19 00:00:00):满足true分支条件,task_a执行,task_b被跳过 - 执行时间为
datetime(2022, 5, 20)(即2022-05-20 00:00:00):不满足true分支条件,task_b执行,task_a被跳过 - 执行时间为
datetime(2022, 5, 21)(即2022-05-21 00:00:00):不满足true分支条件,task_b执行,task_a被跳过
内容的提问来源于stack exchange,提问作者sdgfsdh
相关产品推荐
相关产品推荐

