Как долго сохраняются тайники Drupal?
Используя модуль devel, я вижу много обращений к cache_get() и cache_set(). Через сколько времени необходимо обновить кэшированное значение? Кэш становится недействительным каждые несколько минут?
1 ответ
Модуль, использующий cache_set, устанавливает срок действия в вызове. Некоторые вещи имеют явную продолжительность, другие имеют постоянную или полупостоянную продолжительность жизни, в зависимости от ситуации.
Кэши очищаются явно, когда вы вызываете метод через интерфейс администратора (или drush) или иным образом с помощью drupal_flush_all_caches или cache_clear_all.
В последнее время я использовал hook_cron для очистки определенных таблиц кеша каждую ночь.
РЕДАКТИРОВАТЬ, чтобы ответить на комментарий:
Чтобы увидеть, какой кеш, я обычно помещаю это в отдельный скрипт где-то:
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
header("Content-Type: text/plain; encoding=utf-8");
$user = user_load(1);
print "Modules implementing hook_cron:\n" . implode("\n", module_implements('cron'));
Чтобы увидеть истечения срока действия, изучите различные cache
таблицы в базе данных и посмотрите на expire
колонка. Модули могут устанавливать срок действия каждого отдельного вызова cache_set
, так что это может варьироваться запись за записью.