python - Airflow "This DAG isnt available in the webserver DagBag object "

标签 python airflow workflow

当我在 dags 文件夹中放置一个新的 DAG python 脚本时,我可以在 DAG UI 中查看 DAG 的新条目,但它没有自动启用。最重要的是,它似乎也没有正确加载。我只能点击列表右侧的刷新按钮几次,然后切换列表左侧的开/关按钮,以便能够安排 DAG。这些是手动过程,因为即使 DAG 脚本放在 dag 文件夹中,我也需要触发某些东西。

任何人都可以帮助我吗?我错过了什么吗?或者这是 Airflow 中的正确行为?

顺便说一下,正如帖子标题中提到的,有一个指示符带有此消息“此 DAG 在网络服务器 DagBag 对象中不可用。它显示在此列表中是因为调度程序在元数据中将其标记为事件在我触发所有这些手动过程之前,用 DAG 标题标记数据库”。

最佳答案

这不是你,也不是正确或预期的行为。 这是 Airflow 的当前“错误”。 Web 服务器缓存 DagBag 的方式无法真正按预期使用。

Attempt removing DagBag caching for the web server”仍保留在官方TODO上作为路线图的一部分,表明此错误可能尚未完全解决,但这里有一些关于如何进行的建议:

仅在 Airflow v1.9+ 中使用构建器

在 Airflow v1.9 之前,当一个 dag 由一个函数实例化时发生,该函数被导入到实例化发生的文件中。即:当一个builderfactory使用模式。 github上关于这个问题的一些报告2和 JIRA 3导致a fix在 Airflow v1.9 中发布。

如果您使用的是旧版本的 Airflow ,请不要使用构建器函数。

airflow backfill重新加载缓存

正如 Dmitri 建议的那样,运行 airflow backfill '<dag_id>' -s '<date>' -e '<date>'对于相同的开始和结束日期有时会有所帮助。此后,您可能会遇到 Priyank 指出的(非)问题,但这是预期的行为(状态:暂停与否),具体取决于您在安装中的配置。

关于python - Airflow "This DAG isnt available in the webserver DagBag object ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41560614/

相关文章:

python - 如何将来自 AWS ECR 的私有(private)镜像与 Airflow 的 DockerOperator 一起使用?

airflow - 有人可以帮我启动 apache Airflow 吗?

workflow - Sitecore 工作流程 __OnSave 命令

git工作流程: how to integrate and test feature branches without continuous delivery?

python - 加快 pymongo 在此循环中的插入速度

python - 如何使用 max() 函数找到字典中最大值对应的键?

python 数据类作为 oop 抽象

python - 将 Tix 小部件添加到 Tkinter 容器

airflow - 没有这样的文件或目录/airflow/xcom/return.json

mysql - 频繁的数据库备份工作流程