为什么我所有的 Airflow dag 都落后一 运行?
Why are all of my Airflow dags one run behind?
我现在正在设置 Airflow 并且很喜欢它,除了我的狗永远 运行ning 落后的事实。请参见下图 - 这是 2 月 19 日 15:50 UTC 拍摄的,您可以看到对于每个 dag,它们应该 运行 在上次 运行 和当前时间(有几个不是这样的 - 这些当前已关闭)。我是否遗漏了某些配置?
虚惊一场! Airflow 只是标记执行时间与我预期的不同。结果表明,在 15:00 运行的每小时作业是标签“14:00”,并且包含最多 14:00+1:00.
的数据
来自https://airflow.apache.org/scheduler.html:
Note that if you run a DAG on a schedule_interval of one day, the run stamped 2016-01-01 will be trigger soon after 2016-01-01T23:59. In other words, the job instance is started once the period it covers has ended.
Let’s Repeat That The scheduler runs your job one schedule_interval AFTER the start date, at the END of the period.
执行时间是批次的下限。
例如:
假设您的执行计划是每小时一次,它的 运行 对应于 13:00 计划。
您的 execution_time 将是 12:00。
这是因为我们通常 运行 12:00 - 13:00 在 13:00 的批次(在批次的数据可用之后)。
但根据我的经验,我们有时会根据计划的时间来使用计划(因为我们希望计划开始并且 DAG/job 内部有检查以验证数据准备情况)。在那些情况下,我只是最终使用 next_execution_time(13:00) 而不是 execution_time(12:00).
我现在正在设置 Airflow 并且很喜欢它,除了我的狗永远 运行ning 落后的事实。请参见下图 - 这是 2 月 19 日 15:50 UTC 拍摄的,您可以看到对于每个 dag,它们应该 运行 在上次 运行 和当前时间(有几个不是这样的 - 这些当前已关闭)。我是否遗漏了某些配置?
虚惊一场! Airflow 只是标记执行时间与我预期的不同。结果表明,在 15:00 运行的每小时作业是标签“14:00”,并且包含最多 14:00+1:00.
的数据来自https://airflow.apache.org/scheduler.html:
Note that if you run a DAG on a schedule_interval of one day, the run stamped 2016-01-01 will be trigger soon after 2016-01-01T23:59. In other words, the job instance is started once the period it covers has ended.
Let’s Repeat That The scheduler runs your job one schedule_interval AFTER the start date, at the END of the period.
执行时间是批次的下限。
例如: 假设您的执行计划是每小时一次,它的 运行 对应于 13:00 计划。 您的 execution_time 将是 12:00。 这是因为我们通常 运行 12:00 - 13:00 在 13:00 的批次(在批次的数据可用之后)。
但根据我的经验,我们有时会根据计划的时间来使用计划(因为我们希望计划开始并且 DAG/job 内部有检查以验证数据准备情况)。在那些情况下,我只是最终使用 next_execution_time(13:00) 而不是 execution_time(12:00).