为什么气流没有运行最近的任务

时间:2021-05-26 01:40:08

标签: python airflow airflow-scheduler

我已经使用以下参数设置了一个 dag

local_tz = pendulum.timezone('US/Eastern')  

default_args = {
    'retries': 3,
    'retry_delay': timedelta(minutes=5)
}

dag = DAG(
    dag_id='some_dag',
    start_date=datetime(2021, 1, 8, tzinfo=local_tz),
    schedule_interval='0 16 8 * *',
    default_args=default_args,
    catchup=True
)

我预计最近的任务将在 5 月 8 日运行,但是,我只看到 2 月 8 日、3 月 8 日和 4 月 8 日。我似乎无法弄清楚 Airflow 为何在 4 月份停止。

enter image description here

现在是 5 月 25 日,所以 5 月 8 日的跑步不应该与其他月份一起回填吗?需要明确的是,我今天刚刚部署了这个 dag,所以所有执行的 dag 运行,包括丢失的 5 月 8 日都是回填。

1 个答案:

答案 0 :(得分:1)

这是预料之中的。 正如您在间隔结束时提到的 Airflow 计划任务。 根据您的设置,日程安排将如下所示:

1st 运行将于 2021-02-08 开始,此运行 execution_date 将是 2021-01-08

2nd 运行将于 2021-03-08 开始,此运行 execution_date 将是 2021-02-08

3th 运行将于 2021-04-08 开始,此运行 execution_date 将是 2021-03-08

4th 运行将于 2021-05-08 开始,此运行 execution_date 将是 2021-04-08

5th 运行将于 2021-06-08 开始,此运行 execution_date 将是 2021-05-08

由于您实际上将 DAG 设置为在 2021-05-26 时刻执行的气流开始 1st-4th 运行,因为这些运行的间隔已经结束。 5th 运行尚未开始,因为间隔尚未结束,它将在 2021-06-08 结束。

您可以在此answer中阅读更多有关 Airflow 为何如此行为的详细解释。