如何配置Airflow DAG实现指定日期全时段每3小时运行?
Airflow DAG调度问题解决方案
问题原因
你当前使用的Cron表达式 0 12/3 * * * 逻辑是从12点开始,每3小时执行一次,仅会触发12、15、18、21这几个时间点,无法覆盖0、3、6、9点,导致每日0点到12点没有调度任务。
解决方法
方案一:使用通用每3小时Cron表达式
直接将Cron表达式修改为:
0 */3 * * *
这个表达式表示每3小时执行一次,会覆盖0、3、6、9、12、15、18、21所有符合3小时间隔的时间点。结合你已设置的start_date=2024-02-15 12:00:00和end_date=2024-02-17 12:00:00,Airflow会自动生成该时间段内所有符合要求的调度点,包括15日12点到17日12点之间的每3小时节点。
方案二:显式指定所有目标小时(不推荐)
如果你需要手动枚举所有目标小时,也可以用逗号分隔多个规则:
0 0,3,6,9,12,15,18,21 * * *
这种写法效果和方案一一致,但不如*/3简洁,维护成本更高。
验证调度点
修改后,Airflow会生成的执行时间点包括:
- 2024-02-15 12:00、15:00、18:00、21:00
- 2024-02-16 00:00、03:00、06:00、09:00、12:00、15:00、18:00、21:00
- 2024-02-17 00:00、03:00、06:00、09:00、12:00
完全覆盖你需求的时间范围和频率。
内容的提问来源于stack exchange,提问作者pun1sher
相关产品推荐
相关产品推荐

