Я думаю, что вы хотите прочитать результаты запроса базы данных с помощью:
Rails.cache.fetch("key", :expires => 365.days) do
# db query
end
и обновить его из задания cron 15 минут с помощью:
Rails.cache.write("key",
# db query
)
Затем разрешитеВаша частичная регенерация также каждые 15 минут (или даже каждый раз), так как это не интенсивная часть операции.
NB
- Я устанавливаю: expires =>365.дней, если в вашей конфигурации установлено время истечения по умолчанию, и потому что я не нашел, как явно сказать «никогда».
- Вам нужен запрос в блоке выборки, а не просто выполнениевызов read, чтобы все не прерывалось, когда задание cron никогда не выполнялось, т.е. после перезагрузки.То есть пользователи по-прежнему будут зависать в ожидании загрузки при первом обращении к странице после перезагрузки / перезапуска.