问题:如何解决 Airflow Scheduler 中的 DB 连接无效警告?

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

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

[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 Alchemy 池大小设置,但这没有效果

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

我正在使用 CeleryExecutor 并且我在想可能是工作人员的数量正在使数据库连接超载。

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

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


更新:

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


更新 2:

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

有一些活动与其他人说他们看到了同样的问题。目前尚不清楚这是否直接导致某些人看到的崩溃,或者这是否只是一个令人讨厌的装饰日志。到目前为止,还没有解决这个问题的办法。

解答

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

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

拉取请求

Logo

PostgreSQL社区为您提供最前沿的新闻资讯和知识内容

更多推荐