为何Apache Airflow中‘最后运行’与‘下次运行’日期一致?
Airflow DAG中Last Run与Next Run日期相同的原因分析
核心原因:Airflow调度逻辑+未触发任何运行实例
调度滞后性是关键
Airflow的DAG运行采用「滞后调度」逻辑:比如设置schedule_interval='@daily'的DAG,每个运行实例对应前一天的任务周期,且会在当天结束后才触发。举个例子,处理2025-12-27当天任务的实例,要等到2025-12-28 00:00:00才会启动。未到第一个触发时间
你的DAG设置start_date = dt.datetime(2025,12,27),第一个实例的触发时间是2025-12-28 00:00:00。在这个时间点之前,Airflow还没有任何运行实例执行过,UI里的「Last Run」会显示第一个待运行实例对应的日期(2025-12-27),「Next Run」也会显示这个日期——因为下一次要运行的就是这个还未触发的实例。额外可能:DAG处于暂停状态
Airflow默认新建的DAG是暂停(Paused)状态。如果没手动开启DAG的开关,哪怕到了2025-12-28,也不会触发运行,UI会一直显示两个日期相同。
验证与解决方法
- 检查DAG状态:在Airflow UI里找到
01_unscheduled这个DAG,确保右侧的开关是开启状态。 - 等待触发时间:等时间到2025-12-28 00:00:00后,Airflow会自动触发第一个实例,此时「Last Run」会更新为2025-12-27,「Next Run」会变成2025-12-29。
内容的提问来源于stack exchange,提问作者user18832520
相关产品推荐
相关产品推荐

