Knex: 获取“Knex:获取连接超时。池可能已满。” 错误

创建于 2017-11-02  ·  18评论  ·  资料来源: knex/knex

我正面临“未处理的拒绝 TimeoutError:Knex:超时获取连接。池可能已满。您是否缺少 .transacting(trx) 调用?” 问题。 有大量正在运行的查询,所以我无法找到导致它的查询。 当 postgres 大小增加时,这个问题似乎变得很严重。 有什么解决办法吗?

最有用的评论

我用这些版本解决了这个问题:

"knex": "^0.21.1",
"objection": "^2.1.3",
"pg": "^8.0.3"

所有18条评论

我也面临这个问题。

我也有同样的问题。

解决方案是隔离源并修复它。 这不是“查询”错误,而是应用程序架构问题。 当 knex 无法在(默认)60 秒内获取连接时会发生错误,并且最可能的原因是池已满。

换句话说,有很多事情会导致错误。 最常见的两个是:

  1. 您忘记提交事务/忘记在查询构建器上调用.transacing(trx)而已经在最大池中,这不仅会导致事务空闲而且还会引发错误,因为无法获取连接。
  2. 池在最大容量下持续忙碌至少(默认)60 秒不间断,例如由于流量大或运行时间长。

发生此错误时,您应该查看数据库状态 - 是否有很多空闲连接? 连接太多了吗? 等等。

我也面临这个错误。

rejecter(new _bluebird2.default.TimeoutError('Knex: Timeout acquiring a connection. The pool is probably full. ' + 'Are you missing a .transacting(trx) call?')); ^ TimeoutError: Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?

当我们正在努力挖掘我们的架构连接时,有没有办法防止这个错误导致应用程序崩溃? 或者至少错误可以指出堆栈?

@rsfernandes只要您在构建器上使用catch处理程序,我就看不到此错误会如何使整个应用程序崩溃。

至于堆栈,我推荐longStackTraces 。 knex 没有专门针对此错误堆栈内置任何内容。

FWIW 我在使用 AWS Aurora 数据库服务时遇到了这个错误,它是由自动关闭功能引起的,该功能会在不活动后终止数据库(数据库的自动启动大约需要一分钟左右,这会导致 knex 超时)

https://github.com/tgriesser/knex/issues/3159有一些关于极光建议的工作列表。

@wubzz

  1. 池在最大容量下持续忙碌至少(默认)60 秒不间断,例如由于流量大或运行时间长。

如果这是问题所在,如果不能简单地做更少的工作,可以采取哪些建议? 😅

增加超时或最大容量?

我的问题不在于 knex,而在于我的 aws RDS 上的安全组入站规则。 它仅设置为我的本地计算机 IP 地址,因此我无法从 ec2 实例连接到它。 令人沮丧,因为错误消息没有帮助。
如果您有此错误消息,则可能与 knex 无法建立连接有关。 所以也要检查你的网络!

是的,我想如果连接被完全阻止,可能会发生这种情况......也许设置不同的连接超时和无罪超时可以区分这两种情况。

我用这些版本解决了这个问题:

"knex": "^0.21.1",
"objection": "^2.1.3",
"pg": "^8.0.3"

您可能必须切换到节点 12 而不是节点 14

我有一个数据库池限制,我可以通过设置 min 和 max 来解决这个问题

我在我的 Mac 上遇到了同样的问题。 我正在从命令行终端运行 knex,突然开始看到这个 Knex: Timeout... 问题。 我发现问题出在 zsh shell 而不是 bash 上。 我已经使用 bash 很长时间了,最​​近我尝试按照 Apple 指南切换到 zsh。 一旦我回到 bash,它就被修复了。

希望它可以帮助某人。

您可能必须切换到节点 12 而不是节点 14

这在 mac docker-compose node:12而不是 node (v14) 上对我有用。 谢谢。

我试图通过使用nvm exec 12 node ./src/index...来强制使用服务器的节点版本,并且遇到了上述错误。

通过直接启动节点,错误消失并建立了连接。

因此,请确保您使用的是简单、正常的设置,也许是节点 12。

@batadamnjanovic经过整整两天的研究,你救了我。 泰!!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

fsebbah picture fsebbah  ·  3评论

legomind picture legomind  ·  3评论

hyperh picture hyperh  ·  3评论

koskimas picture koskimas  ·  3评论

nklhrstv picture nklhrstv  ·  3评论