Les documents sur Ehache disent:
timeToIdleSeconds: Sets the time to idle for an element before it expires.
i.e. The maximum amount of time between accesses before an element expires
timeToLiveSeconds: Sets the time to live for an element before it expires.
i.e. 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 accès d'un élément de cache, le timeToLiveSeconds n'est plus applicable?
timeToIdleSeconds
permet de conserver l'objet mis en cache tant qu'il est demandé dans des périodes plus courtes que timeToIdleSeconds
. timeToLiveSeconds
rendra l'objet mis en cache invalidé après ce nombre de secondes, quel que soit le nombre de fois ou le moment où il a été demandé.
Disons que timeToIdleSeconds = 3
. Ensuite, l'objet sera invalidé s'il n'a pas été demandé pendant 4 secondes.
Si timeToLiveSeconds = 90
, alors l'objet sera supprimé du cache après 90 secondes, même s'il a été demandé quelques millisecondes dans la 90e seconde de sa courte durée de vie.
Si vous définissez les deux, expirationTime
sera Math.min(ttlExpiry, ttiExpiry)
, où
ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle
Code source complet ici .
De la ancienne documentation 1.1 (disponible dans Google Cache, qui est plus facile à parcourir et plus informative que les documents actuels AFAIK):
timeToIdleSeconds
Il s'agit d'un attribut facultatif.
Les valeurs autorisées 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 n'est pas de vérifier le temps de repos de l'élément, c'est-à-dire qu'il restera inactif pour toujours.
La valeur par défaut est 0.
timeToLiveSeconds
Il s'agit d'un attribut facultatif.
Les valeurs autorisées 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. Créé signifie inséré dans un cache à l'aide de la méthode Cache.put.
0 a une signification particulière, qui n'est pas de vérifier la durée de vie de l'élément, c'est-à-dire qu'il vivra pour toujours.
La valeur par défaut est 0.