У меня есть конкретная проблема, которую я пытаюсь решить в приложении rails 3, и я вижу два наиболее распространенных решения:
Thread.current[:something] = value
и
class Foo
cattr_accessor :bar
end
Foo.bar = value
Безопасны ли эти методы хранения данных (и соответствующего поиска) для нескольких пользователей, одновременно запрашивающих мое приложение rails?
Я обеспокоен потоком Thread.current, поскольку веб-сервер может использовать один поток для обслуживания нескольких запросов, верно? Или есть что-то в том, как rails обрабатывает потоки, чтобы предотвратить проблемы при использовании Thread.current? Я вижу Действует как текущий использует Thread.current для хранения текущего пользователя, так что это дает мне надежду ... но я хочу авторитетное подтверждение.
Меня также беспокоят атрибуты уровня класса в производственной среде, поскольку я ожидаю, что рельсы будут кэшировать объекты класса в памяти по соображениям производительности. Атрибут уровня класса повторно используется в запросах? или это безопасно из-за того, что rails делает для обработки атрибутов класса между запросами? Опять же, я хотел бы получить достоверное подтверждение этого.
... это приложение использует Ruby 1.9.2@p180, с Rails 3.0.9