我可以在 rails 中读取 file_store 缓存文件的内容吗?

Posted

技术标签:

【中文标题】我可以在 rails 中读取 file_store 缓存文件的内容吗?【英文标题】:can i read the contents of file_store cache file in rails? 【发布时间】:2021-02-06 23:13:54 【问题描述】:

我们有一个生产应用程序正在变慢,其中一个嫌疑人是文件缓存。我们会定期看到巨大的 file_store 缓存文件,例如:

11044573 ./21D/AE1/menu_structure_5cb9b70e11e9b84ac9fa8412_super_admin

最左边的数字是块大小。如果我们清除缓存并且应用重新生成相同的文件,它会更小:

-rw-r--r-- 1 deploy deploy 19K Oct 23 17:27 ./21D/AE1/menu_structure_5cb9b70e11e9b84ac9fa8412_super_admin

(它们是不同的格式 b/c 它们是用不同的命令发现的,但第一个是巨大的,第二个是 18K)。一切正常,所以我们认为一定有一些奇怪的事情,大量的额外数据有缺陷地存储在缓存文件中。有没有办法查看里面有什么,以便我们可以调试为什么会发生这种情况?

感谢您的帮助, 凯文

【问题讨论】:

【参考方案1】:

我挖掘了 rails 源代码,这就是答案

cache_file_path = "tmp/cache/your_cache_file"
cache_entry = Marshal.load(File.read cache_file_path)
cache_entry.value

【讨论】:

以上是关于我可以在 rails 中读取 file_store 缓存文件的内容吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以控制 Rails 读取 .CSS 文件的顺序,还是按惯例固定?

Rails 5 将环境变量读取为 YAML 文件中的字符串

Rails 3 应用程序中的 Sass 导入错误 - “找不到或无法读取要导入的文件:指南针”

凭证文件未在 Amazon Linux 上读取 Rails 6.1

Rails caches_page 没有读取实例变量并抛出错误

Rails 4 ActiveRecord 有很多通过关系不能从 sql 文件读取