ruby-on-rails – 一旦达到连接池限制,Rails ActiveRecord将与MySQL挂起

除非指定,否则ActiveRecord会激活4个默认连接.

我注意到我是否重新加载一个简单的页面,它至少进行一次ActiveRecord调用,每次运行4次正常.然而,在第五次,它挂起了近5秒钟.因此,每隔5页加载它就会挂起5秒钟.

我将我的适配器中的默认连接池增加到8,现在它挂起每个第9页请求.它似乎不重用连接,而是杀死它们并在达到池限制后重新生成它们.

我实际上并没有将ActiveRecord与整个Rails堆栈一起使用.

是否有一个神奇的ActiveRecord连接标志可以防止这种情况发生?或者,还有其他问题吗?

最佳答案 该死的很容易……

ActiveRecord的:: Base.clear_active_connections!

http://coderrr.wordpress.com/2009/01/12/rails-22-activerecord-connection-cleanup/

当然希望这是你可以配置的东西,所以你不必每次都调用它.

点赞