Rails: размер кэша хранилища файлов управления

документация для файлового кэша в rails говорит:

обратите внимание, что кэш будет расти, пока диск не будет заполнен, если вы периодически удалять старые записи.

к сожалению, это не дает никакой информации о том, как периодически очищать старые записи. Устанавливает ли соответствующее значение для :expires_in выполните задание или есть какая-то другая черная магия за очисткой кэша?

кроме того, документация дает возможность ограничить размер кэша на основе памяти:

config.cache_store = :memory_store, { size: 64.megabytes }

это также работает для файлов кэша? И что еще более важно, что происходит, когда кэш растет ниже этого предела размера? Удаляет ли он старые кэшированные значения или создает какое-то исключение?

спасибо заранее, danijoo

2 ответов


да ограничение применяется и в случае файлового кэша. И да значение :expires_in сделает работу.

когда этот предел будет достигнут, больше ничего не будет кэшироваться. Исключение не создается.


экспериментируя с кешем FileStore, я обнаружил, что :expires_in опции работают, но :size нет.

если вы хотите указать параметры, то вам также нужно указать путь, попробуйте со следующим примером:

config.cache_store =: file_store, Rails.корень.join ('tmp',' cache'), {expires_in: 1.минута }

введите код в config/application.rb и не забудьте активировать кэш в config/environments/development.rb и перезапустить приложение.

P. S. Я использую 1 минута легко сделать быстрый тест.