gpt4 book ai didi

ruby-on-rails - 处理Rails.cache.fetch中的错误

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

我正在使用Rails.cache来缓存来自API的响应:

Rails.cache.fetch("key") do 
api.get "/api/data"
api.body
end

该API不太可靠,有时会出现500错误。我想避免缓存500个响应。
Rails.cache.fetch("key") do 
api.get "/api/data"
if api.body.meta.status == 500
# Bail out, Goose!
end
api.body
end

我宁愿不提出异常(exception)。在没有缓存的情况下“摆脱困境”的最佳方法是什么?

最佳答案

我自己碰到了这个问题,看起来break可以解决我们的问题。我只是针对memory_store和dalli_store在本地进行了测试,它避免了缓存块。因此,对于您的示例,请尝试以下操作:

Rails.cache.fetch("key") do 
api.get "/api/data"
break if api.body.meta.status == 500
api.body
end

附带说明一下,如果使用dalli_store,它将不会缓存nil值,因此您只需从块中返回nil即可。

关于ruby-on-rails - 处理Rails.cache.fetch中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969776/

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