4

我现在正在设置 Airflow 并喜欢它,除了我的 dags 永远落后的事实。见下图 - 这是 2/19 世界标准时间 15:50 拍摄的,您可以看到,对于每个 dag,它们应该在上次运行时间和当前时间之间再运行一次(有一对这不是真的-那些目前已关闭)。我错过了一些配置吗?

我的天!

4

2 回答 2

8

虚惊!气流只是标记执行时间与我预期的不同。结果发现,在 15:00 运行的每小时作业是标签“14:00”,并且包含截至 14:00+1:00 的数据。

来自https://airflow.apache.org/scheduler.html

请注意,如果您在一天的 schedule_interval 上运行 DAG,则标记为 2016-01-01 的运行将在 2016-01-01T23:59 之后不久触发。换句话说,作业实例在其涵盖的时间段结束后启动。

让我们重复一遍,调度程序在开始日期之后的一个 schedule_interval 时间段结束时运行您的作业。

于 2018-02-19T16:42:44.750 回答
0

执行时间是批次的下限。

例如:假设您的执行计划是每小时一次,并且它的运行对应于 13:00 的计划。您的 execution_time 将是 12:00。这是因为我们通常在 13:00 运行 12:00 - 13:00 的批处理(在批处理的数据可用之后)。

但根据我的经验,我们有时会根据计划的时间使用计划(因为我们希望计划开始,并且 DAG/作业内部有检查数据准备情况)。在这些情况下,我最终只使用 next_execution_time(13:00) 而不是 execution_time(12:00)。

于 2022-01-10T20:02:52.590 回答