在我的 Rails 应用程序中,我需要在每次加载页面时查询一个二进制文件数据库。查询是只读的。文件大小为 1.4 MB。我有两个问题:
1) 将 File
对象缓存在类变量中是否有意义?
def some_controller_action
@@file ||= File.open(filename, 'rb')
# binary search in @@file
end
2) 缓存的对象是否会在同一 rails 进程中的不同请求之间共享?
最佳答案
如果你在你的类中使用常量,又名
FILE = File.read(filename, 'rb').read
因此它会在应用程序加载时进行评估。之后会发生 fork ,所以它会在共享内存中。
关于ruby - 在 Ruby On Rails 的类变量中缓存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878804/