我有一个气流服务,当前正在作为Web服务器和调度程序的单独docker容器运行,两者均由postgres数据库支持。我让dags在两个实例之间同步,并且在服务启动时dags会正确加载。但是,如果在服务运行时在两个容器上的dag文件夹中添加了一个新的dag,则dag会加载到dagbag中,但会显示在Web gui中且缺少元数据。每次更新后我都可以运行“ airflow initdb”,但是感觉不对。调度程序和Web服务器是否有更好的方法与数据库同步?
答案 0 :(得分:1)
Dag更新应自动获取。如果他们没有被捡起来,那通常是因为您所做的更改“打破了”了。
要检查是否确实拾取了新任务,请在您的Web服务器上运行:
airflow list_tasks <dag_name> --tree
如果显示未找到Dag,则说明存在错误。
如果运行成功,则它会显示您的所有任务,并在刷新时在您的气流ui中拾取这些任务。
如果新任务/更新任务未在此处显示,请检查Web服务器上的dags文件夹并验证代码是否确实已更新。