重置气流DAG执行时间



目前我有一个dag,计划为@daily,通常应该在午夜后触发,以运行前一天的数据。

不知怎的,它现在已经在上午11:30开始运行,因为过去的一次运行出现了问题,当时正在手动重新启动。现在它总是在那个时候触发。当然,这是由于调度算法在最后一次执行时间后一天触发它。

然而,人们并不完全希望在上午11点30分跑步。我希望DAG能在午夜启动。

我有什么选择?我总是可以更改名称,但如果将来发生这种情况,有没有一种方法可以让我轻松地编写脚本?

气流1.8

DAG代码:

dag = DAG('my_dag_v5',
catchup=False,
default_args=args, 
start_date=datetime.datetime(2018, 1, 30), 
schedule_interval='@daily',
max_active_runs=1)

schedule_interval='@daily'更改为schedule_interval='0 0 * * *'

还将您的开始日期从start_date=datetime.datetime(2018, 1, 30, 4, 0)更改为start_date=datetime(2018, 1, 30)

start_date(datetime(–任务的start_date,确定第一个任务实例的execution_de。最佳做法是将start_date四舍五入到DAG的schedule_interval。

schedule_interval-定义DAG运行的频率,这个timedelta对象被添加到您最新任务实例的execution_date中,以确定下一个计划。

这将使它每天午夜使用CRON格式运行。

不幸的是,尽管我尽了最大努力使用其他答案,但我发现,在不冒数据库/调度程序奇怪风险的情况下,让重新设置执行时间的唯一一致方法是重命名DAG本身。

调度器算法将根据上一次执行时间+调度器延迟来计算下一次执行的时间。

如果这种情况发生了变化,而另一个答案有效,我会接受,因为这是我所期望的,但没有。

最新更新