为什么Airflow UI显示的下次运行时间在过去?
在使用Airflow的时候,"下次运行"总是显示为昨天的日期,直到今天的运行完成后,它才会显示今天的日期。而"上次运行"如果今天的运行没有被触发,通常会显示为前天的日期。一旦今天的运行完成,"上次运行"就会变成昨天的日期。即使我更改了DAG的开始日期,这个问题也没有得到解决。
我把Airflow的默认时区设置成了本地时区,界面也是这样设置的。
今天是2024年3月14日,我设置了一个DAG,开始日期是2024年3月12日。这个DAG计划每天20:20运行。
with DAG(
default_args=default_args,
dag_id="test_dag2",
description="dag with py operator",
start_date=datetime(2024, 3, 12, tzinfo=local_tz),
schedule_interval="20 20 * * *"
) as dag
首先,我刷新了页面,"test_dag2"出现了,但处于暂停状态。
然后,我取消了暂停,DAG开始运行之前的几天。然而,"下次运行"却显示为2024年3月13日,我本来期待看到2024年3月14日。
接着,在2024年3月14日20:20,DAG运行了,界面状态更新,显示"上次运行"是昨天的2024年3月13日,而"下次运行"则是今天的2024年3月14日。
查看DAG运行记录,仍然显示相同:它被安排在2024年3月13日运行,但我们可以看到它在2024年3月14日被排队(将UTC时间转换为本地时间后显示为红色,尽管它们显示的是同一天)。
然后我进行了手动运行,这时"上次运行"显示的日期是正确的 - 2024年3月14日。所以手动运行总是显示正确的日期和时间,而计划运行总是比实际运行日期晚一天。
为什么"上次运行"和"下次运行"不显示正确的日期?它们为什么总是比实际运行日期晚一天(无论是UTC时间还是本地时间)?
1 个回答
0
这就是所谓的 时间窗口
。
默认情况下,“下次运行”显示的是下一个 时间窗口
的开始时间,这个时间叫做 数据区间开始
。
每一次“dag 运行”都有它自己的 数据区间
。
Airflow 文档:执行日期是什么意思?