【问题标题】:Airflow does not respect depends_on_past when catchup = True?当追赶=真时,气流不尊重depends_on_past?
【发布时间】:2021-04-26 20:51:47
【问题描述】:

我有一个 Airflow 2.0 DAG,过去用 start_datecatchup = Truema​​x_active_runs = 5 定义。目标是处理从 start_date 开始的数据,最多并行执行五个 DAG 运行。

某些任务是用 depends_on_past = True 定义的,但是我观察到它们有时确实会并行执行,而且似乎 depends_on_past 不受尊重。

这是为什么?是否可以通过 catchupbackfill 并行 DAG 运行处理历史数据,并防止 DAG 中的某些任务并行执行?

【问题讨论】:

    标签: airflow airflow-scheduler


    【解决方案1】:

    我的错。我省略的是我的 DAG 中有一个短路运算符。如果 Dag Run 短路和任务被跳过,它们将被视为成功,这会触发依赖过去的下游任务。

    这是有道理的 - 如果一个任务被跳过并且不被视为成功,那么未来的任务将不会执行。

    【讨论】:

      【解决方案2】:

      这是为什么?

      根据文档,这不应该发生。参考this answer

      是否可以通过并行 DAG 运行(使用追赶或回填)处理历史数据,并防止 DAG 中的某些任务并行执行?

      您将受益于pools。池允许您控制您选择的任务的并行性。 在this answer 中也提到了它。

      附注会在 cmets 中建议,但我不能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2022-08-22
        • 2021-09-12
        • 2012-03-05
        • 1970-01-01
        相关资源
        最近更新 更多