如何过期Rails条件GET缓存



我使用stale?方法在我的JSON API中做条件GET缓存。

我使用

@post = Post.find(params[:post_id])
if stale? @post
  #continue
end

AFAIK这使用post的updated_at来创建一个缓存键。是否有任何方法可以在不执行post.touch操作的情况下使该项目的缓存条目过期?我用的是Heroku

在config/initializer中创建一个名为bust_cache的文件。

ENV["RAILS_CACHE_ID"] = 'version1'

如果将来您希望再次中断缓存,请将值更改为'version2'等。如果您希望在每次部署时中断缓存,请使用:

ENV["RAILS_CACHE_ID"] = Time.now.to_s

***请注意,最后一个策略不适用于Heroku或其他类似情况下的多个dynos

感谢Nathan Kontny

最新更新