有没有一种方法可以指定一个任务只能同时运行一次?那么在DAG并发为4的树上,Airflow将启动任务4,而不是任务2的第二个实例?
此DAG有点特殊,因为任务之间没有顺序。这些任务是独立的,但在目的上相关,因此保存在一个DAG中,从而新创建了过多的单任务DAG。
max_active_runs
是2,而dag_concurrency
是4。我希望它启动所有4个任务,并且仅在完成上一次运行中的相同任务时才在下一个任务中启动。
答案 0 :(得分:1)
答案 1 :(得分:1)
Airflow operator documentation描述参数task_concurrency
。只需将其设置为一个即可。
答案 2 :(得分:0)
我可能误解了您的问题,但是我相信您希望所有任务都在单个dagrun中完成,然后再在下一个dagrun中开始执行任务。因此,DAG仅在上一次执行完成后才执行。
在这种情况下,您可以使用dag的max_active_runs
参数来限制允许运行的DAG并发实例的数量。
此处有更多信息(请参阅最后一个点):https://airflow.apache.org/faq.html#why-isn-t-my-task-getting-scheduled
max_active_runs定义允许DAG运行的并发实例数。
答案 3 :(得分:0)
在[核心]下的airflow.cfg中。您会发现
dag_concurrency = 16 //调度程序允许并发运行的任务实例数
您可以随意将其更改为所需的内容。