例如,我在11:30创建了一个新的DAG。DAG应该在每小时的第一分钟运行(Cron: 0 * * * *)。我以为DAG会在12点开始。然而,DAG和第一次开始于13:00。
这是怎么回事?
我检查了后端Mysql的dag
表,next_dagrun
列的新标记显示12:00.
引用自气流文档:
如果在一天的schedule_interval上运行DAG,则execution_date 2019-11-21的运行将在2019-11-21 t23:59之后不久触发。
Let 's Repeat That,调度程序在开始日期之后的一个schedule_interval,在周期结束时运行您的作业。
可以这样想,如果实际的开始日期指的是之前的执行日期,那么在间隔过了之后将会进行dag运行。因此,当您在12:00看到next_dagrun
时,它将在13:00执行(DAG RunsUI上的Start Date
列),以此类推。
换句话说,如果您在11:30创建DAG,那么在12:00您的第一个schedule_interval
还没有完成。对我来说,最终理解发生了什么事的诀窍是玩弄start_date
参数。
希望这对你有用!