airflow - 使用 "with dag as DAG(...)"子句创建 DAG 有好处吗

标签 airflow airflow-scheduler

我按如下方式创建我的 Airflow DAG:

dag = DAG(...)

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

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

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

最佳答案

是的。

如果您了解 with...as 的作用,那么您应该明白它对 Airflow 生态系统的影响确实没有什么不同。

具体来说,它确保非托管资源(在本例中为 DAG 类的实现)得到正确清理,即使抛出异常(无需每次都使用 try/except block 。)

此外,不必为每个单独的代码都添加 dag=dag 也很好。

关于airflow - 使用 "with dag as DAG(...)"子句创建 DAG 有好处吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60114399/

相关文章:

python - Airflow ExternalTask​​Sensor 卡住了

python-3.x - 即使安装了 Microsoft Visual C++ 14.0 也会出现 Pip 错误

airflow - 如何从 Airflow 列表中删除损坏的DAG?

django - Airflow 的网络服务器未运行

python - Airflow SimpleHttpOperator

google-bigquery - 如何从 Airflow 中的 BigQuery 获取查询结果,并将其附加到自动发送给我的电子邮件中

Airflow DAG动态结构

Airflow:网络服务器未找到新的 DAG

airflow - 支持手动和定时执行

Airflow : dag run with execution_date = trigger_date = fixed_schedule