web-dev-qa-db-fra.com

Comment faire la différence entre le temps de vivre et le temps d'inactivité dans ehcache

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?

98

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.

147
Boris Pavlović

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

ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle

Code source complet ici .

39
Lee Chee Kiam

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.

22
Damo