Изменить 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 ответ

Решение

Хранилище кэша настраивается во время инициализации приложения и не может быть изменено во время выполнения. Чтобы добиться того, что вы пытаетесь сделать, вы можете сохранить конфигурацию хранилища кеша в файле конфигурации и перезапустить все приложение. Смотрите похожие ответы на вопросы, чтобы понять, как это сделать.

Отказ от ответственности: с таким подходом вы можете легко убить приложение, если конфигурация неверна.

Другие вопросы по тегам