Блок кэширование при включении модулей с ограниченным доступом

drupal.stackexchange https://drupal.stackexchange.com/questions/2748

  •  16-10-2019
  •  | 
  •  

Вопрос

У нас есть модуль, который создает пользовательский блок навигации. Он запускает метрическую тонну запросов, и это действительно влияет на производительность. (Обратите внимание, что я унаследовал этот сайт; я не написал этот код!)

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

Есть ли другой способ кэшировать блок навигации? Я знаю о константах block_cache_*, но предполагаю, что встроенное кэширование блока необходимо включить, и что эти константы изменяют поведение по умолчанию. Если мы не можем включить встроенное кэширование, что (если что-то) мы можем сделать?

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

Решение

Предполагая, что модуль, который создает блок и является тяжелым производительности, является пользовательским модулем, простой решением будет кэшировать выход блока из блока. Взглянуть на cache_set а также cache_get функционирует на http://api.drupal.org

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