Ruby on rails 使用config.threadsafe时,从lib/加载模块/类的正确方法是什么!选项
我一直在努力让我们的Rails 2.3.8应用程序在JRuby下正常运行。在启用config.threadsafe之前,一切都很正常以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载 使用config.threadsafe!启用:Ruby on rails 使用config.threadsafe时,从lib/加载模块/类的正确方法是什么!选项,ruby-on-rails,ruby,Ruby On Rails,Ruby,我一直在努力让我们的Rails 2.3.8应用程序在JRuby下正常运行。在启用config.threadsafe之前,一切都很正常以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载 使用config.threadsafe!启用: $ ruby script/runner -e production 'p Sim::Sim200Provisioner' /Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/actives
$ ruby script/runner -e production 'p Sim::Sim200Provisioner'
/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in `const_missing': uninitialized constant Sim::Sim200Provisioner (NameError)
from (eval):1
使用config.threadsafe!残疾人士:
$ ruby script/runner -e production 'p Sim::Sim200Provisioner'
Sim::Sim200Provisioner
所讨论的文件是lib/sim/sim200_provisioner.rb,其中sim是app/models/sim.rb。Rails通常在查找和加载文件方面没有问题
我是否需要手动要求所有的lib,或者是否有一种更像Rails的方式来处理我所缺少的lib?的threadsafe
提到它禁用了自动依赖项加载。原因是,如果两个或多个线程都确定它们仍然缺少某个类,那么在加载文件期间可能会出现争用条件
相反,您应该手动
在初始值设定项中需要所有文件文档链接不包含任何信息,因此这里有一些与#threadsafe!相关的文档:
启用线程模式。允许
对控制器的并发请求
操作和多数据库
连接。也会禁用自动
启动后加载依赖项,以及
禁用在每个服务器上重新加载代码
请求,因为这些基本上是
与线程安全性不兼容
将config.autoload_路径
更改为config.eager_load_路径
(基于和,)