Sí, el plugin cache-ehcache
definitivamente admite TTL y todas las propiedades de configuración de caché que son compatibles nativamente con EhCache. Como se indica en el documento, el complemento de caché base implementa un caché en memoria simple que no admite TTL, pero el DSL de caché pasará a través de cualquier configuración de configuración desconocida al proveedor de caché subyacente.
Puede configurar los ajustes de Ehcache añadiendo lo siguiente a Config.groovy
o CacheConfig.groovy
:
grails.cache.config = {
cache {
name 'mycache'
}
//this is not a cache, it's a set of default configs to apply to other caches
defaults {
eternal false
overflowToDisk true
maxElementsInMemory 10000
maxElementsOnDisk 10000000
timeToLiveSeconds 300
timeToIdleSeconds 0
}
}
Puede verificar la configuración de caché en tiempo de ejecución de la siguiente manera:
grailsCacheManager.cacheNames.each {
def config = grailsCacheManager.getCache(it).nativeCache.cacheConfiguration
println "timeToLiveSeconds: ${config.timeToLiveSeconds}"
println "timeToIdleSeconds: ${config.timeToIdleSeconds}"
}
Véase el EhCache javadoc for CacheConfiguration para el otro propiedades de caché. También puede habilitar el registro de depuración detallado del almacenamiento en caché al iniciar sesión grails.plugin.cache
y net.sf.ehcache
.
Tenga en cuenta que los complementos de caché Grails implementan su propio administrador de caché que es diferente y diferente del gestor de caché EhCache nativo. Si ha configurado EhCache directamente (utilizando ehcache.xml u otros medios), estas memorias caché se ejecutarán por separado de las cachés administradas por el complemento Grails.
Nota: Hubo un error en las versiones anteriores del complemento Cache-EhCache donde la configuración TTL no se estaba configurando correctamente y los objetos caducaban en un año; esto fue arreglado en Grails-Cache-Ehcache 1.1.
se hizo esta pregunta hace mucho tiempo, pero ver https://jira.grails.org/browse/GPCACHEEHCACHE-6 –
@Ken ese enlace está roto ahora – GreenGiant