与我先前提出的问题有关 How to store a database intensive page into cache from a background process in rails
我想每隔15分钟从后台进程写一个部分缓存。当用户请求进来时,我只能从缓存中读取部分并呈现它,并且永远不会明确地使它过期。
有没有办法真正做到这一点?
谢谢,
答案 0 :(得分:1)
我认为你想要的是用以下内容读取db查询的结果:
Rails.cache.fetch("key", :expires => 365.days) do
# db query
end
并通过以下方式从cron作业更新它:
Rails.cache.write("key",
# db query
)
然后允许你的部分每15分钟(或每次偶数)再生,因为这不是操作的密集部分。
N.B。