我正在一个Rails应用程序中工作,我想在那里提供陈旧的数据(其中的变化很小,没有那么大的关系,但我想在后台升级该高速缓存)。
一种方法是这样的:
if Rails.cache.exist?('my_view')
Rails.cache.read('my_view')
MaybeUpdateInBackground.perform_async
end
# MaybeUpdateInBackground.rb
def perform
Rails.cache.write('my_view', render_to_string('my_view'))
end
在RoR中是否有更好的模式?
1条答案
按热度按时间g0czyy6m1#
这样就完成了任务:
要分解它,请执行以下操作:
expensive_but_unimportant_operation_cached
时,它会检查Rails.cache
--如果值在那里,它会返回它--如果那里的值过时,它会触发“刷新”。