如何清除Rails操作缓存? (Rails.cache.clear不起作用)

时间:2018-12-30 04:31:25

标签: ruby-on-rails ruby caching heroku

如何在不重新启动服务器的情况下清除rails action缓存?

我有一个脚本,可以用新数据更新Postgres数据库。脚本完成后,我想清除所有缓存的页面。但如果不完全重新启动Heroku服务器,我似乎无法使其生效

我尝试没有成功:

  • # React & Markdown App * Benefits of using React... but... * Write layout in Markdown!
  • Rails.cache.clear => ["/app/tmp/cache/bootsnap-compile-cache", "/app/tmp/cache/bootsnap-load-path-cache"]
  • rails tmp:cache:clear

config.cache_store没有为生产明确设置(我已经看到了有关默认使用哪个缓存的混合信息)

我已确保浏览器中没有缓存(通过禁用开发工具中的缓存并绕过服务人员)

我将Heroku与ruby 2.5.3,rails 5.2.1.1和actionpack-action_caching 1.2.0一起使用

我怎么知道它没有在数据库层或片段缓存中缓存?

我在操作中添加了日志记录功能,该操作仅在重新启动后第一次访问页面时进行记录

更新:我删除了操作缓存,而是通过使用紧急加载更好地优化了SQL采石。

1 个答案:

答案 0 :(得分:0)

您会看到here,生产中的默认缓存存储为mem_cache_store。因此,您应该能够以不同的方式清除它,而无需重新启动服务器。 Maciej Mensfeld就这些方式写了blog。如果flush_all没有生效,我个人在缓存服务器中使用Rails.cache.clear命令。