Airflow:并发深度优先,而不是广度优先?

Airflow: Concurrency Depth first, rather than breadth first?

在 airflow 中,默认配置似乎是跨天(从一天到下一天)并行地对任务进行排队。

但是,如果我将这个过程加快,比如说,两年,那么气流 dag 将首先通过初步过程搅动,跨越所有天,而不是同时从开始到结束向前推进 4 天。

如何切换气流以根据深度优先范例而不是广度优先范例执行任务?

尝试切换 airflow.cfg 中的 parallelismmax_active_runs 参数以及 DAG 中的 concurrency 参数.

我遇到过类似的情况。我使用以下技巧来实现 depth-first 行为。


说明

  • UPSTREAM weight_rule 根据任务在整个工作流程中的位置 反转任务的优先级,导致所有下游任务的优先级高于上游任务。
  • 这将确保启动的任何分支都将在选择下一个分支之前完成,从而实现深度优先行为