为什么气流不是 运行 最近的任务

Why is airflow not running the most recent task

我已经使用以下参数设置了一个 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 在四月停止。

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

这是意料之中的。 正如您提到的,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 Airflow 执行的那一刻 1st-4th 运行s 开始,因为这些 运行s 的间隔已经结束。 5th 运行 尚未开始,因为间隔尚未结束,它将在 2021-06-08.

结束

您可以在 answer.

中阅读有关 Airflow 行为为何如此的更详尽的解释