java - library - Cómo diferenciar entre tiempo de vida y tiempo de inactividad en ehcache
java cache library (3)
Los documentos en ehache dicen:
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.
Entiendo timeToIdleSeconds
Pero, ¿significa que después de la creación y el primer acceso de un elemento de caché, timeToLiveSeconds ya no es aplicable?
De la antigua documentación 1.1 (disponible en Google Cache, que es más fácil de navegar y más informativa que los documentos actuales de AFAIK):
timeToIdleSeconds
Este es un atributo opcional.
Los valores legales son enteros entre 0 e Integer.MAX_VALUE.
Es la cantidad de segundos que un Elemento debería vivir desde la última vez que se usó. Medios usados insertados o accedidos.
0 tiene un significado especial, que no es verificar que el elemento esté inactivo, es decir, estará inactivo para siempre.
El valor predeterminado es 0.
timeToLiveSeconds
Este es un atributo opcional.
Los valores legales son enteros entre 0 e Integer.MAX_VALUE.
Es la cantidad de segundos que un Elemento debería vivir desde que fue creado. Creado significa insertado en un caché utilizando el método Cache.put.
0 tiene un significado especial, que no es verificar el Elemento por el tiempo de vida, es decir, vivirá para siempre.
El valor predeterminado es 0.
Si establece ambos, el Math.min(ttlExpiry, ttiExpiry)
será Math.min(ttlExpiry, ttiExpiry)
, donde
ttlExpiry = creationTime + timeToLive
ttiExpiry = mostRecentTime + timeToIdle
El código fuente completo here .
timeToIdleSeconds
permite que el objeto almacenado en caché se guarde siempre que se solicite en períodos más cortos que timeToIdleSeconds
. timeToLiveSeconds
hará que el objeto en caché se invalide después de tantos segundos, independientemente de cuántas veces o cuando se solicitó.
Digamos que timeToIdleSeconds = 3
. Entonces el objeto se invalidará si no se ha solicitado durante 4 segundos.
Si timeToLiveSeconds = 90
, el objeto se eliminará de la memoria caché después de 90 segundos, incluso si se ha solicitado unos milisegundos en el 90º segundo de su corta vida útil.