Как долго сохраняются тайники 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, так что это может варьироваться запись за записью.

Другие вопросы по тегам