我在rails項目中緩存方法的結果有問題。Rails.cache在不同的線程中沒有緩存?
我來到這個代碼,模擬兩種不同的要求:
[
Thread.new { puts Rails.cache.fetch('a', expires_in: 2.seconds) { rand } },
Thread.new { puts Rails.cache.fetch('a', expires_in: 2.seconds) { rand } }
]
嘗試在軌控制檯執行它。 如果我試圖在控制檯上作爲輸出運行它,我會得到不同的數字。這怎麼可能?
但例如驗證碼(睡眠)按預期工作:
[
Thread.new { sleep(1); puts Rails.cache.fetch('a', expires_in: 2.seconds) { rand } },
Thread.new { puts Rails.cache.fetch('a', expires_in: 2.seconds) { rand } }
]
謝謝總管Hieu。我想你是對的。 – kajamite