ruby – ActiveRecord :: ConnectionTimeoutError

前端之家收集整理的这篇文章主要介绍了ruby – ActiveRecord :: ConnectionTimeoutError前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我收到此错误
'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跟踪连接,因此会混淆并且不会正确返回连接.

原文链接:https://www.f2er.com/ruby/268539.html

猜你在找的Ruby相关文章