假設我需要解析一些配置來實例化一些服務單例(可以使用或不使用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 –