我有一个函数,它返回一个 ID 列表,在Rails 缓存指南中我可以看到可以在缓存结果上设置过期,但我实现缓存的方式有所不同。
def provide_book_ids(search_param)
@returned_ids ||= begin
search = client.search(query: search_param, :reload => true)
search.fetch
search.options[:query] = search_str
search.fetch(true)
search.map(&:id)
end
end
如上所述,设置 10 分钟缓存到期的推荐方法是什么?
def provide_book_ids(search_param)
@returned_ids = Rails.cache.fetch("zendesk_ids", expires_in: 10.minutes) do
search = client.search(query: search_param, :reload => true)
search.fetch
search.options[:query] = search_str
search.fetch(true)
search.map(&:id)
end
end
我假设这段代码是某个请求-响应周期的一部分,而不是其他东西(例如,长时间运行的工作人员或在您的应用程序中初始化一次的某个类。在这种情况下,您不想直接使用 @returned_ids 但是而是调用 provide_book_ids 来获取价值,但据我所知,这不是你的情况,所以上面提供的方法应该可以工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句