gpt4 book ai didi

ruby-on-rails - 如何强制 Rails (2.3.x) MemCacheStore 从服务器读取值?

转载 作者:行者123 更新时间:2023-12-04 06:46:14 25 4
gpt4 key购买 nike

长话短说:我有一些 Controller 逻辑从缓存中请求一个值 X 次,如果它实际上在缓存请求之间在缓存服务器上发生了变化,则期望在后续请求中获得不同的值(这都在单个 HTTP 请求)。

但是似乎 Rails MemCacheStoreStrategy::LocalCache 包裹自己因此,无论我请求该值多少次,它总是会返回它从服务器中提取的第一个值,无论该值是否在请求之间在服务器上发生了变化。

我希望有一些未记录的 :force read() 的选项方法,但没有这样的运气。

所以我的下一个希望是以某种方式修补它以获得我需要的东西,但我被难住了。

有什么建议吗?

最佳答案

通过反向移植和猴子补丁 bypass_local_cache 让它工作(感谢@KandadaBoggu 的建议)来自 activesupport 的功能3.0

module ActiveSupport
module Cache
module Strategy
module LocalCache
protected
def bypass_local_cache
save_cache = Thread.current[thread_local_key]
begin
Thread.current[thread_local_key] = nil
yield
ensure
Thread.current[thread_local_key] = save_cache
end
end
end
end
end
end

关于ruby-on-rails - 如何强制 Rails (2.3.x) MemCacheStore 从服务器读取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3737916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com