Предположим, мне нужно проанализировать некоторую конфигурацию, чтобы инициировать некоторые сервисные синглеты (которые можно использовать с Rails или без них).Rails reload! сбрасывает переменные класса, необходимо перезапустить некоторые инициализаторы
Пример из Пример кода:
#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)
Но когда специально используется с Rails, на каждой консоли rails restart!
, эта переменная @config очищается, что является проблемой ...
Есть
after-reload!
крючки, которые я мог бы использовать для повторного запуска инициализатора?- другие типы переменных, которые будут сохранены во время
restart!
, которые я мог бы использовать здесь?
Это старый вопрос, но поскольку есть новые читатели: после перезапуска и т. Д., В ActiveSupport доступны следующие блоки: Перезагрузка из Rails 5. См. Документ http://www.rubydoc.info/gems/activesupport/ ActiveSupport/Reloader –