ConnectionNotEstablished之后在JRuby中有一个多线程环境

时间:2016-07-21 07:52:58

标签: ruby-on-rails ruby multithreading activerecord nginx

我有Rails(4.2.6)应用程序,我使用Thread(s)进行Rufus :: Scheduler导致的后台数据处理。我在开发环境中有工作应用程序,但当我在nginx +乘客上将它移动到生产时,即使没有足够的负载,我也会得到异常 ActiveRecord :: ConnectionNotEstablished

对从Actives执行的ActiveRecord :: Base的后代的所有调用都包含在

ActiveRecord::Base.connection_pool.with_connection{}

我之前从未使用多线程环境,但在对问题进行一些调查后,我建议可能就是这个问题。

  

在JRuby下尝试它是否合理,哪种包含是优先的?

主机系统是Ubuntu 14.04 x86_64。

1 个答案:

答案 0 :(得分:0)

OMG

我已经包含了宝石'puma'http://puma.io/并使用了Nginx代理,它的确有效!我认为这个解决方案比JRuby更容易。

以前我使用Passenger并有类似的惊喜。

首先,Passenger在变为空闲状态时杀死线程。我已经全球发起了Thread和Rufus,并且Passenger在开始2分钟后杀死了他们。

中学,这个问题和乘客意外发生。

嗯,问题已经解决,可能这个备忘录可以帮助某人。