我们应该让气流调度程序运行多长时间?

ril*_*yss 2 airflow airflow-scheduler

我对气流如何通过调度程序获取新 DAG 代码中的更改感到非常困惑。有人可以澄清气流调度程序如何使用新代码吗?airflow scheduler每次更改 DAG 中的代码时是否都需要停止并重新运行?--num_runs 1或者我可以在每次进行新更改时设置并运行它吗?

谢谢!

cwu*_*rtz 5

调度程序应该一直运行。你应该在airflow scheduler没有参数的num_runs情况下运行。调度程序被设计为一个长时间运行的进程,一个无限循环。它协调正在完成的工作,是气流的核心。如果它没有运行,您就不会安排更多的工作来完成。

循环的每次迭代都会重新加载所谓的DagBagDAG 集合。对 DAG 的任何修改以及 DAG 的删除/添加都应反映在下一个调度程序循环中。

  • 不,我相信调度程序也会通过分叉进程来获取它们。如果您将代码更改直接添加到 AIRFLOW_HOME,则永远不需要重新启动调度程序来获取代码更改。还有更高级的用例,例如如果您在 docker 容器中运行气流,其中更新容器将导致调度程序重新启动(这就是我们为自己和我工作的客户运行它们的方式,天文学家)。 (2认同)