Airflow Subdag CLI执行backfill未重跑失败任务且仅运行单天而非日期范围
问题修复方案
1. 实际运行日期与指定日期差1天问题
- 该问题是Airflow类调度工具的通用设计逻辑:日级调度的DAG中,执行日期(execution_date) 为调度周期的起始时间,你期望重跑2021-01-03的Subdag业务任务,对应工具侧的执行日期实际为2021-01-02,因此会出现你观察到的日期偏差。
- 适配方案:如果要匹配你预期的业务日期,直接将
-s参数设置为目标业务日期即可;如果需要严格对齐工具的执行日期逻辑,将-s参数调整为目标业务日期的前一天即可。
2. 指定日期范围仅运行单个任务问题
- 问题根因为命令参数传递错误:你当前将
-s、-e范围参数全部放在了DAG名称的引号内部,launch-ecs-backfill.sh脚本只能识别全局传入的参数,无法解析引号内部的参数值,因此读取不到你设置的日期范围,默认仅执行单个日期的任务。 - 修正后的命令如下:
./launch-ecs-backfill.sh -v -w -t dev -s 2021-01-03 -e 2021-01-05 'instagram.build_media --rerun-failed-tasks'
- 补充说明:如果调整参数后依然无法触发全范围的任务执行,可在DAG参数中补充
--reset-dagruns配置,清除对应区间已存在的DAG运行记录,避免旧记录拦截新的调度任务。
内容的提问来源于stack exchange,提问作者KristiLuna
相关产品推荐
相关产品推荐

