gpt4 book ai didi

python - Airflow 不会触发带有 `LocalExecutor` 的并发 DAG

转载 作者:太空宇宙 更新时间:2023-11-04 05:22:15 26 4
gpt4 key购买 nike

我使用的是 airflow 1.7.1.3。

我对并发 DAG/任务有疑问。当一个 DAG 正在运行时,调度程序不再启动其他 DAG。似乎调度程序完全卡住(不再有日志)......直到运行的 DAG 完成。然后,触发新的 DAGrun。我的不同任务是长时间运行的 ECS 任务(~10 分钟)

我使用了 LocalExecutor 并使用了关于 parallelism=32dag_concurrency=16 的默认配置。我使用 airflow scheduler -n 20 并自动重启它,并为我所有的 DAG 声明设置了 'depends_on_past': False

有关信息,我在 ECS 集群中运行的容器中部署了 Airflow 。 max_threads = 2 而我只有 2 个 CPU 可用。

有什么想法吗?谢谢

最佳答案

我在使用 LocalExecutor 时也遇到了这个问题。这似乎是 LocalExecutor 工作方式的限制。调度程序最终产生子进程(在您的情况下为 32 个)。此外,您的调度程序每次执行执行 20 次迭代,因此当它完成 20 次运行时,它会等待其子进程终止,然后调度程序才能退出。如果有长时间运行的子进程,调度程序将被阻止执行。

对我们来说,解决方案是切换到 CeleryExecutor。当然,这需要 Celery 后端有更多的基础设施、管理和整体复杂性。

关于python - Airflow 不会触发带有 `LocalExecutor` 的并发 DAG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com