加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – ActiveRecord :: ConnectionTimeoutError

发布时间:2020-12-17 04:20:44 所属栏目:百科 来源:网络整理
导读:我收到此错误: 'could not obtain a database connection within 5 seconds (waited 5.001017 seconds). The max pool size is currently 16; consider increasing it.' 首先我得到了这个错误,我将计数从5提升到16.但它仍然在发生,我是唯一一个测试数据库的
我收到此错误:
'could not obtain a database connection within 5 seconds (waited 5.001017 seconds). The max pool size is currently 16; consider increasing it.'

首先我得到了这个错误,我将计数从5提升到16.但它仍然在发生,我是唯一一个测试数据库的人.当我是唯一的用户时,为什么会这样?

我不在铁轨上.我在用:

ActiveRecord::Base.establish_connection ({
    :adapter => 'mysql2',:database => 'ck',:host => 'localhost',:username => 'root',:password => '',:pool => 16,})

并使用Sinatra.

谢谢

解决方法

正如Frederick指出的那样,您需要将打开的ActiveRecord连接返回到连接池.

如果您在线程模式下使用Thin服务器,则需要将其添加到Sinatra应用程序:

after do
  ActiveRecord::Base.connection.close
end

…而不是使用ConnectionManagement建议.原因是Thin将请求处理分为两个线程,而关闭ActiveRecord连接的线程与打开它的线程不同.由于ActiveRecord按线程ID跟踪连接,因此会混淆并且不会正确返回连接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读