Thread.current []值和类级属性是否可以安全地在rails中使用?

时间:2011-07-12 03:34:12

标签: ruby-on-rails thread-safety multi-user

我有一个特殊的问题,我试图在rails 3应用程序中解决,我看到的两个常见解决方案是:

Thread.current[:something] = value

class Foo
  cattr_accessor :bar
end

Foo.bar = value

这些数据存储方法(以及相应的检索)是否可以安全地在多个用户同时向我的rails应用程序发出请求?

我关注Thread.current,因为Web服务器可以使用单个线程来提供多个请求,对吧?或者,在使用Thread.current时,rails处理线程以防止出现问题的方式是什么?我看到Acts As Current使用Thread.current来存储当前用户,所以这给了我希望......但我想要权威的确认。

我还关注生产环境中的类级别属性,因为出于性能原因,我希望rails能够在内存中缓存类对象。类级属性是否在请求之间重用?或者由于rails在处理请求时处理类属性的问题,它是否安全?再次,我想对此进行权威性的确认。

...这个应用程序使用Ruby 1.9.2@p180,使用Rails 3.0.9

1 个答案:

答案 0 :(得分:1)