Изменить Rails cache_store во время выполнения?
Мое приложение имеет функцию, которая позволяет администратору изменять конфигурацию cache_store через графический интерфейс. Тогда новая конфигурация вступит в силу сразу.
По умолчанию cache_store в моем production.rb:
config.cache_store = :memory_store
Администратор может при желании изменить использование memcached в магазине Dalli. Я попытался изменить Rails.application.config.cache_store:
Rails.application.config.cache_store = :dalli_store, 'localhost:11211', 'localhost:11212'
Но Rails.cache не меняется:
Rails.cache
=> <#ActiveSupport::Cache::MemoryStore entries=0, size=0, options={}>
Есть какой-либо способ сделать это?
1 ответ
Хранилище кэша настраивается во время инициализации приложения и не может быть изменено во время выполнения. Чтобы добиться того, что вы пытаетесь сделать, вы можете сохранить конфигурацию хранилища кеша в файле конфигурации и перезапустить все приложение. Смотрите похожие ответы на вопросы, чтобы понять, как это сделать.
Отказ от ответственности: с таким подходом вы можете легко убить приложение, если конфигурация неверна.