Pendant combien de temps met en cache Drupal dernier?
-
12-10-2019 - |
Question
Utilisation du module de devel je peux voir beaucoup d'appels à cache_get () et cache_set (). Après combien de temps un besoin de valeur mise en cache à rafraîchir? Est-ce que le cache s'invalidées toutes les quelques minutes?
La solution
Le module qui utilise cache_set définit l'expiration de l'appel. Certaines choses ont des durées explicites, d'autres ont des durées de vie permanents ou semi-permanents, en fonction de la situation.
Caches se sont explicitement supprimées lorsque vous invoquez la méthode à travers l'interface d'administration (ou drush), ou autrement par l'utilisation de drupal_flush_all_caches ou cache_clear_all .
Ces derniers temps, j'ai utilisé un hook_cron pour effacer certaines tables de cache chaque nuit.
EDIT pour répondre commentaire:
Pour voir quel cache, je l'habitude de mettre cela dans un endroit séparé de script:
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'));
Pour voir expirations, examiner les différentes tables de la base de données dans cache
et regardez la colonne de expire
. Les modules peuvent mettre expirations sur chaque appel à cache_set
, il peut donc varier l'entrée par entrée.