如何不延迟地安排执行?

How to schedule execution without delay?

我有一个问题,我需要在每个月的第一天启动一个 DAG,但我有一个问题,DAG 于 10 月 1 日启动但在 11 月 1 日那天执行,我需要 10 月 1 日执行 10 月 1 日11月1日执行11月1日,不延后一个月执行。

我的调度程序是:'0 10 1 * *'

谢谢

这就是 Airflow 的工作原理。 间隔结束时的气流调度 DAG。 所以如果你有:

DAG(
    dag_id='tutorial',
    schedule_interval='0 10 1 * *',
    start_date=datetime(2021, 10, 1),
) 

第一个 运行 将在 2021-11-01 开始 - 此 运行 的执行日期为 2021-10-01。此行为与数据管道的工作方式一致。在 11 月,您将需要处理 10 月的数据。或者用我之前提到的术语 - 你的月度间隔从 10 月初开始到 11 月结束,所以在 11 月初你可以 运行 处理 10 月数据的作业。

就是说 - 在作业本身中,您可以处理您希望的任何时间间隔。为此,您可以使用 Airflow macros.

简单来说,如果你想让你的第一个 DAG 运行 在 2021-10-01 开始,你应该设置 start_date=datetime(2021, 9, 1)

从 Airflow 2.2.0 开始,该领域得到了增强。 随着 AIP- 39 Richer Scheduler. You can read about the concept of Timetables in this doc.

的完成,Airflow 将“何时到 运行”与“处理的时间间隔”分离开来