当我将新的 DAG python 脚本放入 dags 文件夹中时,我可以在 DAG UI 中查看 DAG 的新条目,但它并未自动启用。最重要的是,它似乎也没有正确加载。我只能点击列表右侧的“刷新”按钮几次,然后切换列表左侧的开/关按钮才能安排 DAG。这些是手动过程,因为即使 DAG 脚本放在 dag 文件夹中,我也需要触发某些内容。
任何人都可以帮助我吗?我错过了什么吗?或者这是气流中的正确行为?
顺便说一句,正如文章标题中提到的,有一个指示器带有以下消息“此 DAG 在网络服务器 DagBag 对象中不可用。它显示在此列表中,因为调度程序将其标记为在元数据数据库中处于活动状态”标记在我触发所有这些手动过程之前,先使用 DAG 标题。
这不是您的行为,也不是正确或预期的行为。
这是 Airflow 当前的一个“错误”。
Web 服务器缓存 DagBag 的方式使您无法真正按预期使用它。
"Attempt removing DagBag caching for the web server
“ 仍保留在官方TODO https://github.com/apache/incubator-airflow/blob/master/TODO.md作为路线图的一部分,表明此错误可能尚未完全解决,但以下是有关如何继续的一些建议:
仅在 Airflow v1.9+ 中使用构建器
在 Airflow v1.9 之前,当 dag 由导入到发生实例化的文件中的函数实例化时,就会发生这种情况。即:当一个builder https://en.wikipedia.org/wiki/Builder_pattern or factory https://en.wikipedia.org/wiki/Factory_method_pattern使用模式。 github 上有关此问题的一些报告2 https://github.com/wepay/airflow-webserver/issues/10和吉拉3 https://issues.apache.org/jira/projects/AIRFLOW/issues/AIRFLOW-1904 led to a fix https://github.com/apache/incubator-airflow/pull/2863在 Airflow v1.9 中发布。
如果您使用的是旧版本的气流,请不要使用构建器函数。
airflow backfill
重新加载缓存
正如德米特里(Dmitri)建议的那样,跑步airflow backfill '<dag_id>' -s '<date>' -e '<date>'
相同的开始和结束日期有时会有所帮助。此后,您可能会遇到 Priyank 指出的(非)问题,但这是预期的行为(状态:暂停或未暂停),具体取决于您安装中的配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)