Как записать частичное в кеш из фонового процесса и прочитать частичное из кеша и рендерить его в рельсы? - PullRequest
2 голосов
/ 23 марта 2011

Относительно вопроса, который я задал ранее Как сохранить страницу с интенсивным использованием базы данных в кеш из фонового процесса в rails

Я хочу записать частичку в кеш из фонового процессакаждые 15 минутИ когда появляется запрос пользователя, я могу просто прочитать частичку из кеша и обработать ее, и никогда не истечет явно.

Есть ли способы сделать это на самом деле?

Спасибо,

1 Ответ

1 голос
/ 02 мая 2011

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

Rails.cache.fetch("key", :expires => 365.days) do
  # db query
end

и обновить его из задания cron 15 минут с помощью:

Rails.cache.write("key",
                  # db query
                  )

Затем разрешитеВаша частичная регенерация также каждые 15 минут (или даже каждый раз), так как это не интенсивная часть операции.

NB

  1. Я устанавливаю: expires =>365.дней, если в вашей конфигурации установлено время истечения по умолчанию, и потому что я не нашел, как явно сказать «никогда».
  2. Вам нужен запрос в блоке выборки, а не просто выполнениевызов read, чтобы все не прерывалось, когда задание cron никогда не выполнялось, т.е. после перезагрузки.То есть пользователи по-прежнему будут зависать в ожидании загрузки при первом обращении к странице после перезагрузки / перезапуска.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...