1

我有一个问题,我需要每个月的第一天启动一个 DAG,但我有一个问题,DAG 于 10 月 1 日开始,但在 11 月 1 日当天执行,我需要 10 月 1 日执行 10 月 1 日和 11 月 1 日执行 1十一月,不耽误执行一个月。

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

谢谢

4

1 回答 1

0

这就是气流的工作原理。气流在间隔结束时调度 D​​AG。因此,如果您有:

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 宏

简而言之,如果您希望开始第一次 DAG 运行,2021-10-01您应该设置start_date=datetime(2021, 9, 1)

从 Airflow 2.2.0 开始,该区域得到了增强。随着AIP-39 Richer Scheduler的完成,Airflow 将“何时运行”与“处理什么间隔”分离。您可以在此文档中阅读有关时间表的概念。

于 2021-11-02T15:59:52.957 回答