我的应用程序需要在初始化时进行一些预计算。我有一个Ruby文件config/initializers/start_1.rb
,在这个文件中,我require
是/config/lib/init_module.rb
中的通用模块,如下所示:
require './lib/init_module.rb'
Init::Class1.new
Init::Class1.new
在/config/lib/init_module.rb
文件中,我为每个新对象增加一个值,如下所示:
module Init
class Class1
@@local = 0
def initialize
@@local += 1
end
def self.local
@@local
end
end
end
在我的应用程序控制器中,对于来自客户端的每个请求,我想使用这个预先计算的值。
require /config/lib/init_module.rb
,它将不会给我任何关于本地值的内容(= 0
),因为每个请求都会创建一个新实例。 (实际上,我不明白为什么@@local
是一个类变量。)require /config/initializers/start_1.rb
,它将为每个请求运行初始化程序,这将导致巨大的开销。感谢您对我的问题的建议。
答案 0 :(得分:0)
我使用.pow服务器为我的应用程序提供本地域名,问题是让.pow服务器为每个请求重新加载,从我的应用程序中删除tmp / restart.txt后,问题解决了!谢谢你的帮助。