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



>我按如下方式创建我的气流DAG:

dag = DAG(...)

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

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

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

是的。

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

具体而言,它确保正确清理非托管资源(在本例中为 DAG 类的实现(,即使引发异常(无需每次都使用 try/except 块(。

此外,不必为每个添加dag=dag也很好。

最新更新