Вопрос

Я использую Django с jqGrid и загружаю страницы через AJAX.Иногда запросы бывают очень сложными, а загрузка страниц происходит очень медленно, поскольку дальние страницы намного медленнее (чего и следовало ожидать, результаты часто превышают 100 тыс. Объектов).Я думал, что кеширование результатов решит проблему, добавив некоторое время к загрузке первой страницы, но затем сильно ускорив загрузку последующих страниц.

Вместо этого загрузка первой страницы была невероятно медленной, и даже последующие страницы занимали много времени (11 секунд на стандартном ПК).Я использую бэкэнд кеш-памяти locmem. Есть идеи?Я пробовал для сравнения сохранять результаты в глобальном словаре, и это было НАМНОГО лучше (последующие страницы занимают только единицы), но слышал, что это небезопасный способ.

Есть идеи?

Это было полезно?

Решение

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

Взгляните на johnny-cache, который выполняет прозрачное кеширование набора запросов.Это может (повторяю, может ) решить все ваши проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top