如何解决 Airflow Scheduler 中的数据库连接无效警告?

How to resolve DB connection invalidated warning in Airflow Scheduler?

我正在将我们的 Airflow 实例从 1.9 升级到 1.10.3,每当调度程序 运行s 现在我收到一条警告,指出数据库连接已失效,它正在尝试重新连接。一堆这样的错误连续出现。控制台还指示正在安排任务,但如果我检查数据库,则不会写入任何内容。

以下警告出现在它之前没有出现的地方

[2019-05-21 17:29:26,017] {sqlalchemy.py:81} WARNING - DB connection invalidated. Reconnecting...

最后,我也会得到这个错误

FATAL: remaining connection slots are reserved for non-replication superuser connections

我试图在 airflow.cfg 中增加 SQL 炼金术池大小设置,但没有效果

# The SqlAlchemy pool size is the maximum number of database connections in the pool.
sql_alchemy_pool_size = 10

我正在使用 CeleryExecutor,我在想可能是工作人员的数量使数据库连接过载了。

我 运行 三个命令,airflow webserverairflow schedulerairflow worker,所以应该只有一个工人,我不明白为什么会超载数据库。

如何解决数据库连接错误?是否有增加数据库连接数的设置,如果有的话在哪里?我需要以不同方式处理工人吗?


更新:

即使没有工人 运行ning,重新启动网络服务器和调度程序,当调度程序填满气流池时,数据库连接警告开始出现。


更新 2:

我在 Airflow Jira 中发现了以下问题:https://issues.apache.org/jira/browse/AIRFLOW-4567

有些人 activity 和其他人说他们看到了同样的问题。目前尚不清楚这是否会直接导致某些人看到的崩溃,或者这是否只是一个烦人的外观日志。目前还没有解决这个问题。

这已在最新版本的 Airflow 中解决,1.10.4

我相信它已被 AIRFLOW-4332 修复,将 SQLAlchemy 更新到更新版本。

Pull request