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

ruby-on-rails – Rails 3.1线程安全损坏

发布时间:2020-12-17 02:00:11 所属栏目:百科 来源:网络整理
导读:或类似的东西.我已经将几个应用程序从Rails 3.0升级到Rails 3.1.它们在Thin上运行,启用了多线程选项,它们都配置了threadsafe!.在Rails 3.0中工作得很好.但在3.1中,经过一些请求后,事情开始放缓.在几个请求之后,页面挂起N秒(其中N是我的db超时),我收到此错误
或类似的东西.我已经将几个应用程序从Rails 3.0升级到Rails 3.1.它们在Thin上运行,启用了多线程选项,它们都配置了threadsafe!.在Rails 3.0中工作得很好.但在3.1中,经过一些请求后,事情开始放缓.在几个请求之后,页面挂起N秒(其中N是我的db超时),我收到此错误:

ActiveRecord::ConnectionTimeoutError (could not obtain a database connection within 5 seconds.  The max pool size is currently 5; consider increasing it.):

过去已经找到了5和5的默认值,应该仍然没问题.增加它们并不能解决问题,但需要更长的时间才能显示出来.我应该强调,在这些时候,我是唯一一个访问应用程序的人.当我将Thin缩小到单线程模式时,一切都按预期工作.

这适用于MySQL,SQLite,Ruby 1.8.7和Ruby 1.9.2.薄不变.我能找到的唯一变量是升级到Rails 3.1.有什么我可以做的,或者这是Rails中的回归?

解决方法

看起来这是一个错误.它有一个补丁和拉取请求.希望Rails将它合并进去.在此之前,多线程Rails应用程序将无法在Thin上运行.

https://github.com/rails/rails/pull/1670

(编辑:李大同)

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

    推荐文章
      热点阅读