有没有办法增加 ActiveRecord 的连接超时?
当我有超过 25 个线程且池大小为 5 时,我不断收到此错误。
(ActiveRecord::ConnectionTimeoutError) “无法在 5 秒内获得数据库连接(等待 5.000144774 秒)。当前最大池大小为 3;考虑增加它。”
如果没有办法增加连接超时,那么确保线程尽快使用连接的最佳方法是什么?
有没有办法增加 ActiveRecord 的连接超时?
当我有超过 25 个线程且池大小为 5 时,我不断收到此错误。
(ActiveRecord::ConnectionTimeoutError) “无法在 5 秒内获得数据库连接(等待 5.000144774 秒)。当前最大池大小为 3;考虑增加它。”
如果没有办法增加连接超时,那么确保线程尽快使用连接的最佳方法是什么?
根据文档,您应该在数据库配置文件中设置“checkout_timeout”选项。
checkout_timeout:在放弃和引发超时错误之前阻止和等待连接的秒数(默认为 5 秒)。
你可以加
pool: 5
在你的 database.yml 中。
你也可以设置这个checkout_timeout
值,但我不推荐它,因为你的应用程序可能需要更多的时间来回答它。如果在系统收到许多请求时抛出错误,最好只提供更多可能的同时连接,而不是让每个请求等待更长的时间才能完成。