使用 "with dag as DAG(...)" 子句创建 DAG 有好处吗
Is there a benefit to use the "with dag as DAG(...)" clause to create a DAG
我按如下方式创建我的 Airflow DAG:
dag = DAG(...)
但在多个教程和课程中,我看到他们使用这样的 with ... as
子句:
with DAG(...) as dag:
# Code that will use the dag variable.
我猜这样一来,DAG 实例将在调度程序执行代码块后被销毁,但这样做真的有好处吗?我找不到任何关于此的文档。
是的。
如果你了解with...as
的作用,那么你应该明白它对气流生态系统的影响确实没有什么不同。
具体来说,它确保非托管资源 - 在本例中为 DAG class 的实现 - 被正确清理,即使有异常抛出(不需要使用 try/except 块每个时间。)
此外,不必为每个人都添加 dag=dag
也很好。
我按如下方式创建我的 Airflow DAG:
dag = DAG(...)
但在多个教程和课程中,我看到他们使用这样的 with ... as
子句:
with DAG(...) as dag:
# Code that will use the dag variable.
我猜这样一来,DAG 实例将在调度程序执行代码块后被销毁,但这样做真的有好处吗?我找不到任何关于此的文档。
是的。
如果你了解with...as
的作用,那么你应该明白它对气流生态系统的影响确实没有什么不同。
具体来说,它确保非托管资源 - 在本例中为 DAG class 的实现 - 被正确清理,即使有异常抛出(不需要使用 try/except 块每个时间。)
此外,不必为每个人都添加 dag=dag
也很好。