imr*_*ole 4 ruby ruby-on-rails
我目前有以下简单的控制器:
class SimpleController < ApplicationController
def index
@results = fetch_results
end
end
Run Code Online (Sandbox Code Playgroud)
fetch_results是一个相当昂贵的操作,所以虽然上述工作,我不想每次刷新页面时运行它.如何解除更新,@results以便按固定的时间表更新,让我们说每15分钟更新一次.
这样,每次页面加载时,它都会返回当前@results值,最坏的情况是过时14分59秒.
您可能希望使用Rails` 低级缓存:
def index
@results = Rails.cache.fetch('fetched_results', expires_in: 15.minutes) do
fetch_results
end
end
Run Code Online (Sandbox Code Playgroud)
阅读有关如何在Rails指南中配置Rails的缓存存储的更多信息.