Допустим, у меня есть класс Ruby в моем проекте Rails, который устанавливает переменную экземпляра.
class Something
def self.objects
@objects ||= begin
# some logic that builds an array, which is ultimately stored in @objects
end
end
end
Возможно ли, чтобы @objects
можно было установить несколько раз? Возможно ли, чтобы во время одного запроса при выполнении кода между begin
/end
выше этот метод мог быть вызван во время второго запроса? Я полагаю, это действительно сводится к вопросу о том, как разветвляются экземпляры сервера Rails.
Должен ли я вместо этого использовать Mutex
или синхронизацию потоков? например.:
class Something
def self.objects
return @objects if @objects
Thread.exclusive do
@objects ||= begin
# some logic that builds an array, which is ultimately stored in @objects
end
end
end
end