重置气流 DAG 执行时间
Reset airflow DAG execution time
目前我有一个计划 @daily
的 dag,通常应该在前一天的数据 运行 午夜之后触发。
不知何故,由于 运行 过去出现问题并在当时手动重新启动,它现在已在 11:30AM 开始 运行。现在它总是在那个时候触发。这当然是由于调度算法在最后一次执行时间后一天触发它。
但是,运行上午 1130 点并不是我们想要的。我希望能够以某种方式让 DAG 在午夜启动。
我有哪些选择?我可以随时更改名称,但有没有一种方法可以让我轻松地编写脚本if/when 将来会发生这种情况?
气流 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_date。最佳做法是将 start_date 四舍五入为 DAG 的 schedule_interval.
schedule_interval
- 定义 DAG 运行 的频率,这个 timedelta 对象被添加到您最新的任务实例的 execution_date 中以确定下一个计划。
这将使 运行 每天午夜使用 CRON 格式。
不幸的是,尽管我尽最大努力使用其他答案,但我发现唯一一致的方法是让气流达到 reset 执行时间而不冒 database/scheduler 奇怪的风险就是重命名DAG本身。
调度程序算法将根据上一次执行时间 + 调度程序延迟计算下一次执行时间。
如果这个改变,并且另一个答案有效,我会接受,因为这是我期望的,但没有。
目前我有一个计划 @daily
的 dag,通常应该在前一天的数据 运行 午夜之后触发。
不知何故,由于 运行 过去出现问题并在当时手动重新启动,它现在已在 11:30AM 开始 运行。现在它总是在那个时候触发。这当然是由于调度算法在最后一次执行时间后一天触发它。
但是,运行上午 1130 点并不是我们想要的。我希望能够以某种方式让 DAG 在午夜启动。
我有哪些选择?我可以随时更改名称,但有没有一种方法可以让我轻松地编写脚本if/when 将来会发生这种情况?
气流 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_date。最佳做法是将 start_date 四舍五入为 DAG 的 schedule_interval.
schedule_interval
- 定义 DAG 运行 的频率,这个 timedelta 对象被添加到您最新的任务实例的 execution_date 中以确定下一个计划。
这将使 运行 每天午夜使用 CRON 格式。
不幸的是,尽管我尽最大努力使用其他答案,但我发现唯一一致的方法是让气流达到 reset 执行时间而不冒 database/scheduler 奇怪的风险就是重命名DAG本身。
调度程序算法将根据上一次执行时间 + 调度程序延迟计算下一次执行时间。
如果这个改变,并且另一个答案有效,我会接受,因为这是我期望的,但没有。