Rails プロジェクトに、インスタンス変数を設定する Ruby クラスがあるとします。
class Something
  def self.objects
    @objects ||= begin
      # some logic that builds an array, which is ultimately stored in @objects
    end
  end
end
@objects複数回設定できる可能性はありますか?begin1 つのリクエスト中に/上記の間でコードを実行している間に、endこのメソッドが 2 番目のリクエスト中に呼び出される可能性はありますか? これは、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