2015-12-21 5 views
1

Сайт содержит более 7000 страниц контента. Когда большая часть страниц кэшируется, сайт обрабатывает свой трафик приемлемо. Когда, например, для модуля развертывается обновление кода, кеш очищается. (Это также может произойти из какого-то другого события, например перезагрузки сервера или пула приложений, получающего рециркуляцию.)На веб-сайте Orchard можно сохранить выходной кеш во время обновления модуля?

На сайт попадает поисковый робот, который выполняет свою работу по переиндексации сайта, проверяя все страницы, о которых он знает, и инициирование процесса восстановления кеша для всех страниц. Это привязывает процессор на 90% до 98% и заставляет сайт реагировать медленно для всех запросов страниц.

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

+0

Orchard Version? – urbanit

+0

Вы кэшируете в памяти? –

+0

Orchard v.1.9.0.0 – JonH

ответ

1

Да, есть, хотя для этого требуется использовать внешний кэш-сервер, такой как Redis. Поставщик кэша по умолчанию использует хранилище в памяти, которое всегда будет сбрасываться при перезапуске пула приложений. Последняя версия Orchard поддерживает Redis из коробки с помощью основного модуля Orchard.Redis.

Вышеупомянутое относится как к бизнес-кешу (ICacheService), так и к кэшированию вывода.

+0

Я взглянул на модуль Redis, и теперь я хуже, чем раньше ... Пожалуйста, объясните «из коробки». Вот моя проблема сейчас: включение модуля кэша Redis ломает сайт Orchard, и нет возможности отключить модуль и выяснить, какие параметры конфигурации требуются. Нет существенной документации по модулям Contrib.Cache.Memcached или Contrib.Cache.Redis - у них сломанные ссылки в галерее модулей. – JonH

+0

@JonH Я не имел в виду модуль Contrib.Cache.Redis, но тот, который поставляется с ядром (следовательно, «из коробки»), т.е. Orchard.Redis. Обновлен ответ, чтобы он дал понять. Если вы используете Orchard 1.9, то у вас уже есть его, как он был введен тогда. Если нет - что-то не так с вашей кодовой базой или вы должны удалить этот модуль в какой-то момент. –

+0

Кристально чистый ответ сейчас - спасибо! Как оказалось, делать доказательство концепции было довольно просто. Я установил Redis локально, используя файл MSI на странице выпуска MSOpenTech redis GitHub. Я добавил строку подключения Orchard.Redis.OutputCache к web.config. Я включил модули вывода Redis и Redis Output Cache в Orchard. Затем я смог видеть загруженные страницы в базе данных Redis с помощью Redis Desktop Manager и в статистике кеша в Orchard. Утилизация пула приложений или перезапуск сайта не выселили из кеша, так что я рад! Теперь: получение кэша активно заселено ... – JonH