【问题标题】:Having a Multithreaded environment in JRuby after ConnectionNotEstablishedConnectionNotEstablished 之后在 JRuby 中拥有多线程环境
【发布时间】:2016-07-21 07:52:58
【问题描述】:

我有 Rails (4.2.6) 应用程序,我在其中使用线程进行由 Rufus::Scheduler 引起的后台数据处理。我在开发环境中有工作应用程序,但是当我在 nginx + 乘客上将其移至生产环境时,即使没有足够的负载,也会出现异常 ActiveRecord::ConnectionNotEstablished

所有从线程执行的对 ActiveRecord::Base 后代的调用 - 都被包装到

ActiveRecord::Base.connection_pool.with_connection{}

我以前从未使用过多线程环境,但在调查了一些问题后,我认为可能是这个问题。

在JRuby下试一试是否合理,首选什么容器?

主机系统是 Ubuntu 14.04 x86_64。

【问题讨论】:

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


    【解决方案1】:

    天哪

    我已经包含了 gem 'puma' http://puma.io/ 并使用了 Nginx 代理,它可以工作!!我认为这个解决方案看起来比 JRuby 更容易。

    之前我用过Passenger,也有类似的惊喜。

    首先,Passenger 在进入空闲状态时会杀死线程。我已经在全球范围内启动了 Thread 和 Rufus,Passenger 在启动后 2 分钟就杀死了它们。

    第二,这个问题,出乎Passenger的意料。

    嗯,问题已经解决了,也许这份备忘录可以帮助到某人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-10
      • 2012-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多