Rails线程安全,包括模块



我想在应用程序控制器中包含基于实例变量的模块。

我现在有这样的东西:

class ApplicationController
  before_filter :include_module
  def include_module
    @@site = "foo"
    class_eval{ include @@site.classify.constantize::Bar }
  end
end

但是,我想让这个片段线程安全。有可能吗?我想实现的是,对每个请求加载模块,其名称取决于一些变量。

AFAIK Rails是线程安全的,在MRI上是单线程的。然而,上下文很重要。你在做核磁共振还是JRuby?我建议你通读下面的3次

http://m.onkey.org/thread-safety-for-your-rails

http://yehudakatz.com/2010/08/14/threads-in-ruby-enough-already/

http://blog.headius.com/2008/08/qa-what-thread-safe-rails-means.html

编辑:如果rails应用程序是单线程的,那么变量是线程安全的。我之前应该补充一下。在这种情况下,Rails是线程安全的。

最新更新