ruby - 在 Ruby On Rails 的类变量中缓存文件

标签 ruby ruby-on-rails-3

在我的 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/

相关文章:

ruby-on-rails - 使用 id 作为参数从另一个类访问一个类

ruby - Rack::Builder 的未定义方法 `require'

ruby - 在实例方法中分配对象变量

轮类运算符的 ruby 运算符优先级问题

ruby-on-rails - 在 Ruby on Rails 应用程序中开发和测试缓存的最佳方法是什么?

ruby-on-rails - 更改路由行为但保留 "Convention over Configuration"

ruby - 如何对 ASCII 字符进行 URL 编码?

sql - Ruby on Rails - 具有连接和顺序的范围

mysql - 哪里用MongoDB,哪里用MySQL?

ruby - 为什么在 Ruby 1.8.7 中编译 IronRuby 时出现错误?