Вопрос

Используя модуль Devel, я вижу много вызовов Cache_get () и cache_set (). После того, как долго нужно обновить кэшированное значение? Каждые несколько минут кэш невигается?

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

Решение

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

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