使用“ with dag as DAG(...)”子句创建DAG是否有好处?

时间:2020-02-07 13:22:41

标签: airflow airflow-scheduler

直到我按照以下步骤创建了气流达标

dag = DAG(...)

但是在多个教程和课程中,我看到他们使用像这样的“ with ... as”子句:

with dag as DAG(...):
    # Code that will use the dag variable.

我想这样,在调度程序执行dag的代码后,dag实例将被销毁,但是这样做有真正的好处吗?我找不到任何有关此的文档。

1 个答案:

答案 0 :(得分:2)

是的。

如果您了解with...as的功能,那么您应该了解它对气流生态系统的影响确实没有什么不同。

特别是,它确保即使在抛出异常(无需每次都使用try / except块的情况)下,也可以正确清理非托管资源(在这种情况下,DAG类的实现)。

此外,不必将dag = dag添加到每一个中也很不错。