Как не удалять кэш Views после добавления ноды?

Аватар пользователя sashken sashken 25 января 2019 в 9:39

Есть "тяжелый вьюс" первый вывод генерируется несколько секунд.

После кэширования views открывается быстро.

Но стоит добавить на сайт какой-то материал (никак не связанный с выводом в этом вьюс) или блок (а может еще и запуск крона влияет), как тут же кэш вьюса сбрасывается и для анонима вьюс опять генерируется долго.

Пробовал в настройках кэширования ставить "по тегам" и "по времени" (на год), ничего не помогает.

Как сделать чтобы кэш определенных views не очищался?

Лучший ответ

Аватар пользователя sashken sashken 20 февраля 2019 в 16:19

По умолчанию ко всем вьюсам выводящим список добавляется тег списка node_list или {entity_type}_list
Нашел решение - модуль https://www.drupal.org/project/views_custom_cache_tag позволяет добавить свой тег к views и удаляет тег списка (и вроде все остальные теги). Таким образом у меня получилось сделать кэш вьюс вечным. Обновляется только при ручной очистке кэша.

Комментарии

Аватар пользователя Orion76 Orion76 25 января 2019 в 23:29

Если вьюс "тяжелый",
то что-то мне подсказывает, что у него много связей-джойнов,
возможно даже многоуровневых.
И скорее всего эти связи все таки связывают его с добавляемым материалом, после добавления которого сбрасывается кэш.

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

Аватар пользователя sashken sashken 20 февраля 2019 в 16:19

По умолчанию ко всем вьюсам выводящим список добавляется тег списка node_list или {entity_type}_list
Нашел решение - модуль https://www.drupal.org/project/views_custom_cache_tag позволяет добавить свой тег к views и удаляет тег списка (и вроде все остальные теги). Таким образом у меня получилось сделать кэш вьюс вечным. Обновляется только при ручной очистке кэша.