web-dev-qa-db-fra.com

Qu'est-ce qui fait qu'un état transitoire passe à l'état "N'expire pas"?

J'ai remarqué que de temps en temps des transitoires sur mon site passent d'une date d'expiration à "n'expire pas". J'ai remarqué que cela se produisait avec certains plugins (par exemple, Gravity Forms), mais aussi avec les transitoires que j'avais créés. Des idées?

UPDATE: Je ne sais pas comment Gravity Forms définit et récupère ses transitoires, mais je ne faisais qu'utiliser les exemples du codex.

//Set transient name based on post tags being used
$transient = 'rest-posts-' . md5(serialize($tags));
if (false === ($data = get_transient($transient))) {
    //Run query here and then set transient
    set_transient($transient, $data,24 * HOUR_IN_SECONDS);
}

Cela fonctionne ... ce qui signifie, si pas transitoire valide alors il va en créer un. Cependant, de temps en temps, je constate que les données ne sont pas mises à jour. Je vérifie donc tous mes transitoires et constate que certains états ont été remplacés par "N'expire pas". Aucun nouveau transitoire n'est créé une fois que les actuels sont réglés sur "N'expire pas". J'utilise un plugin transitoire pour gérer tous les transitoires. Donc, une fois que je supprime les transitoires avec le statut "N'expire pas", de nouveaux sont parfaitement créés.

2
gdaniel

Les transitoires n'expirent pas si le délai d'expiration n'est pas fourni. Notez que vous pouvez provoquer ceci par inadvertance si vous fournissez une valeur nulle pour l'heure.

Vous devez savoir que cela ne garantit toujours pas que le transitoire restera en vie. Cela ne devrait pas être invoqué.

En tant que détail d'implémentation principal, il supprimera tous les éléments transitoires de la base de données lors des mises à niveau de version de base de données. Cela a été mis en œuvre à l’époque pour résoudre le problème de la possibilité que la base de données soit bouchée par d’énormes quantités d’anciens transitoires.

2
Rarst