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