Comment faire la différence entre le temps de vivre et le temps d’inactivité à ehcache

Les documents sur ehache disent:

timeToIdleSeconds: Sets the time to idle for an element before it expires. ie The maximum amount of time between accesses before an element expires timeToLiveSeconds: Sets the time to live for an element before it expires. ie The maximum time between creation time and when an element expires. 

Je comprends timeToIdleSeconds

Mais cela signifie-t-il qu’après la création et le premier access d’un élément de cache, le timeToLiveSeconds n’est plus applicable?

timeToIdleSeconds permet de conserver l’object mis en cache tant qu’il est demandé dans des périodes plus courtes que timeToIdleSeconds . timeToLiveSeconds rendra l’object mis en cache invalidé après plusieurs secondes, quel que soit le nombre de fois ou le moment où il a été demandé.

Disons que timeToIdleSeconds = 3 . Ensuite, l’object sera invalidé s’il n’a pas été demandé pendant 4 secondes.

Si timeToLiveSeconds = 90 , alors l’object sera retiré du cache après 90 secondes, même s’il a été demandé quelques millisecondes dans la 90ème seconde de sa courte durée de vie.

Si vous définissez les deux, le expirationTime sera Math.min(ttlExpiry, ttiExpiry) , où

 ttlExpiry = creationTime + timeToLive ttiExpiry = mostRecentTime + timeToIdle 

Code source complet ici .

A partir de l’ ancienne documentation 1.1 (disponible dans Google Cache, plus facile à parcourir et plus informative que les documents actuels AFAIK):

timeToIdleSeconds

Ceci est un atsortingbut facultatif.

Les valeurs légales sont des entiers compris entre 0 et Integer.MAX_VALUE.

C’est le nombre de secondes qu’un élément doit vivre depuis sa dernière utilisation. Utilisé signifie inséré ou accessible.

0 a une signification particulière, qui est de ne pas vérifier le temps d’inactivité de l’élément, c’est-à-dire qu’il sera inactif pour toujours.

La valeur par défaut est 0.

timeToLiveSeconds

Ceci est un atsortingbut facultatif.

Les valeurs légales sont des entiers compris entre 0 et Integer.MAX_VALUE.

C’est le nombre de secondes qu’un élément doit vivre depuis sa création. Moyens créés insérés dans un cache en utilisant la méthode Cache.put.

0 a une signification particulière, qui consiste à ne pas vérifier le temps de vie de l’élément, c’est-à-dire qu’il vivra pour toujours.

La valeur par défaut est 0.