首页 > 解决方案 > DAG 未暂停后气流调度旧任务

问题描述

我暂停了一份工作 DAG 一个月。该作业每 10 分钟运行一次。现在我打开它,我可以看到气流自我暂停工作那天起就在尝试运行所有东西。

每次我清除任务列表时,都会安排更多任务。它可能有 2000 多个任务。

我希望 DAG 启动当前任务并丢弃过去的所有任务。

标签: airflow

解决方案


我想catchup应该解决你的挑战,这是DAG的一个论点:

带有 start_date、可能是 end_date 和 schedule_interval 的 Airflow DAG 定义了一系列间隔,调度程序将这些间隔变成单独的 DAG 运行和执行。默认情况下,调度程序将在自上次执行日期以来未运行(或已被清除)的任何时间间隔内启动 DAG 运行。这个概念被称为追赶。
如果您的 DAG 被编写为处理其追赶(即,不限于时间间隔,而是例如现在),那么您将需要关闭追赶。这可以通过在 DAG 中设置 catchup = False 来完成

dag = DAG(
    'tutorial',
    default_args=default_args,
    start_date=datetime(2015, 12, 1),
    description='A simple tutorial DAG',
    schedule_interval='@daily',
    catchup=False)

推荐阅读