这似乎是一个相当普遍的问题。我有一个 DAG,我不仅可以手动触发它airflow trigger_dag
,但它甚至按照其时间表执行,但拒绝显示在 UI 中。
我已经多次重新启动网络服务器和调度程序,按“刷新”十亿次,然后运行它airflow backfill
。有人还有其他想法吗?我可以提供其他相关信息吗?
我使用的是 Airflow 1.9.0。
在过去的几个小时里我一直在调试这个确切的问题。这似乎是由于 DAG 中的静默错误造成的。在这里为下一个可怜的灵魂留下我的笔记。
因此,就我而言,此错误是由于我的 DAG 中的以下代码块造成的:
这失败了:
def read_lakes_id_file_simple():
LAKES_ID_FILE = "/home/airflow/gcs/data/lakes_to_monitor.json"
with open(LAKES_ID_FILE) as json_file:
data = json.load(json_file)
return data
这通过:
def read_lakes_id_file_simple():
try:
LAKES_ID_FILE = "/home/airflow/gcs/data/lakes_to_monitor.json"
with open(LAKES_ID_FILE) as json_file:
data = json.load(json_file)
return data
except Exception as e:
return 'LOTS OF LAKES'
所以我猜测当调度程序读取/检查时,第一个会以某种方式失败,也许是因为它找不到文件,或者诸如此类的东西,而第二个成功是因为它由工作人员在正确的路径中运行。 (或者可能是其他东西。)似乎很清楚的是,加载/运行 DAG 时有两种不同的运行和行为,其中一种默默失败,而另一种则成功。
这会导致奇怪的行为,例如 DAG 第一次运行良好,然后从 Airflow Web 界面中消失。
所以我给你的建议是添加try/except
任何可能符合要求的东西,作为调试代码的一种方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)