![](/img/trans.png)
[英]Difference between importing airflow.DAG and airflow.models.DAG
[英]what's the difference between airflow's 'parallelism' and 'dag_concurrency'
我不明白dag_concurrency
和parallelism
之間的區別。 文檔和此處的一些相關帖子在某種程度上與我的發現相矛盾。
我以前的理解是, parallelism
參數允許您設置氣流和dag_concurrency
可能的全局(跨所有DAG)TaskRun的最大數量,以表示單個Dag可能的TaskRun的最大數量。
因此,我將parallelism
設置為8,將dag_concurrency
為4,然后運行一個Dag。 我發現它一次運行8個TI,但我希望它一次運行4個。
那怎么可能?
另外,如果有幫助,我將這些任務的池大小設置為10左右。 但這沒關系,因為“ config”參數的優先級高於池的優先級,對嗎?
另一個答案只是部分正確:
dag_concurrency不會顯式控制每個工作者的任務。 dag_concurrency是每個dag_run同時運行的任務數。 因此,如果DAG具有可以同時運行10個任務的位置,但又想限制對工作人員的訪問量,則可以將dag_concurrency設置得較低。
隊列和池設置也會影響每個工作人員的任務數。
當您開始構建同時運行的DAG的大型庫時,這些設置非常重要。
並行性是所有工作人員和DAG的最大任務數。
parallelism
性最好視為max_active_tasks_total
。 將其設置為8,說“我只希望一次在所有工作人員之間運行8個任務”。
dag_concurrency
作為max_active_tasks_for_worker
更好。 將其設置為4,表示“我只希望每個工作人員一次最多運行4個任務實例”。
因此,當您運行dag時,它正在2個兩個worker之間運行總共8個任務實例,每個worker運行4個任務。 我認為您只是dag_concurreny
了dag_concurreny
。
此答案部分來自此SO答案: SO答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.