假设我需要解析一些配置来实例化一些服务单例(可以使用或不使用Rails)。Rails重载!重置类变量,需要重新运行一些初始化程序
样品代码例如:
#services/my_service.rb
module MyService
@config = nil
def self.load_config(config)
@config = config
end
当与铁(或Capistrano的,屈,等等),使用我会用一个初始化启动本服务
#initializers/svc.rb
MyService.load_config(Rails.application.secrets.my_service.credentials)
但是具体使用时与轨道,在每个轨道控制台restart!
,这个@config变量被清除,这是一个问题...
有没有
after-reload!
钩子,我可以用来重新运行初始化程序?- 在我可以在这里使用的
restart!
期间将保留的其他类型的变量?
这是一个古老的问题,但由于有新的读者:重启后等钩子可在Rails 5的ActiveSupport :: Reloader中使用。请参阅文档http://www.rubydoc.info/gems/activesupport/ ActiveSupport/Reloader –