【问题标题】:Why is airflow not running the most recent task为什么气流没有运行最近的任务
【发布时间】:2021-05-27 22:18:33
【问题描述】:

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

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

【问题讨论】:

  • 5 月将在 6 月运行
  • 我不明白为什么......根据文档,第一次执行是 start_date + schedule_interval,然后在每个间隔。 5月8日已经过去了,5月不应该跑了吗?
  • 如前所述,这是预期的行为,因为间隔尚未结束,5 月的运行将在 6 月运行。以this answer 为例。我的建议是使用 start_date 并比较 UI 中 Dag Runs 菜单中显示的信息。
  • 花了我一点时间,但它是有道理的。

标签: python airflow airflow-scheduler


【解决方案1】:

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

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 运行,因为这些运行的间隔已经结束。 5th 运行尚未开始,因为时间间隔尚未结束,它将在 2021-06-08 结束。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    相关资源
    最近更新 更多