如何增加 ActiveRecord 连接超时?

Hen*_*hiu 6 ruby activerecord ruby-on-rails

有没有办法增加 ActiveRecord 的连接超时?

当池大小为 5 的线程超过 25 个时,我不断收到此错误。

(ActiveRecord::ConnectionTimeoutError)“无法在 5 秒内获得数据库连接(等待 5.000144774 秒)。最大池大小当前为 3;考虑增加它。”

如果没有办法增加连接超时,那么确保线程尽快使用连接的最佳方法是什么?

bar*_*olo 5

根据文档,您应该在数据库配置文件中设置“checkout_timeout”选项。

checkout_timeout:在放弃和引发超时错误之前阻塞和等待连接的秒数(默认为 5 秒)。


fot*_*nus 4

你可以加

pool: 5
Run Code Online (Sandbox Code Playgroud)

在你的database.yml中。

您也可以设置该checkout_timeout值,但我不推荐它,因为您的应用程序可能需要更多秒来回答它。如果当系统处理许多请求时抛出错误,最好只提供更多可能的并发连接,而​​不是让每个请求等待更长时间才能完成。