2016-10-04 123 views
1

我正在使用氣流1.7.1.3。氣流不會觸發與`LocalExecutor`同時發生的DAG

我遇到併發DAG /任務問題。當DAG正在運行時,調度程序不再啓動其他DAG。看起來,調度程序完全凍結(不再有日誌)......直到正在運行的DAG完成。然後,新的DAGrun被觸發。我的不同任務是長時間運行的ECS任務(~10分鐘)

我使用了LocalExecutor,我讓默認配置約爲parallelism=32dag_concurrency=16。我使用airflow scheduler -n 20並自動重新啓動它,併爲我所有的DAG聲明設置了'depends_on_past': False

有關信息,我在ECS羣集中運行的容器中部署了氣流。 max_threads = 2,我只有2個CPU可用。

任何想法?謝謝

回答

0

我遇到了這個問題以及使用LocalExecutor。這似乎是LocalExecutor如何工作的限制。調度程序結束產生子進程(在你的情況下是32)。另外,您的調度程序每次執行時會執行20次迭代,因此在它的20次運行結束時,它會等待其子進程在調度程序退出之前終止。如果有長時間運行的子進程,調度程序將在執行時被阻塞。

對我們來說,決議是切換到CeleryExecutor。當然,這需要Celery後端更多的基礎設施,管理和整體複雜性。