我正在将Airflow实例从1.9升级到1.10.3,并且每当调度程序现在运行时,我都会收到一条警告,指出数据库连接已失效,并且正在尝试重新连接。这些错误会连续出现。控制台还指示正在计划任务,但是如果我检查数据库,则什么也没写。
以下警告显示以前从未出现过的地方
[2019-05-21 17:29:26,017] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...
Run Code Online (Sandbox Code Playgroud)
最终,我也会收到此错误
FATAL: remaining connection slots are reserved for non-replication superuser connections
Run Code Online (Sandbox Code Playgroud)
我试图增加SQL Alchemy池大小设置,airflow.cfg
但这没有效果
# The SqlAlchemy pool size is the maximum number of database connections in the pool.
sql_alchemy_pool_size = 10
Run Code Online (Sandbox Code Playgroud)
我正在使用CeleryExecutor,并且我认为可能是大量的工作人员正在使数据库连接超载。
我运行三个命令airflow webserver
,airflow scheduler
和airflow worker
,所以应该只有一个工人,我不明白为什么会超载数据库。
如何解决数据库连接错误?是否有增加数据库连接数量的设置,如果有,它在哪里?我需要不同地对待工人吗?
更新:
即使没有工作人员在运行,也要重新启动Web服务器和调度程序,当调度程序填满气流池时,DB连接警告也会开始出现。
更新2:
我在Airflow Jira中发现以下问题:https : //issues.apache.org/jira/browse/AIRFLOW-4567
有些活动与其他人说他们看到相同的问题。目前尚不清楚这是否直接导致某些人看到的崩溃,或者这仅仅是一个讨厌的装饰日志。到目前为止,还没有解决此问题的方法。