Ja, das Plugin cache-ehcache
unterstützt definitiv TTL und alle Cache-Konfigurationseigenschaften, die nativ von EhCache unterstützt werden. Wie in der Dokumentation erwähnt, implementiert das Base-Cache-Plugin einen einfachen In-Memory-Cache, der TTL nicht unterstützt, aber die Cache-DSL wird alle unbekannten Konfigurationseinstellungen an den zugrunde liegenden Cache-Provider weitergeben.
Sie können, indem Sie das folgende Config.groovy
oder CacheConfig.groovy
die ehcache Einstellungen konfigurieren:
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
}
}
Sie die Cache-Einstellungen zur Laufzeit überprüfen können, wie folgt:
grailsCacheManager.cacheNames.each {
def config = grailsCacheManager.getCache(it).nativeCache.cacheConfiguration
println "timeToLiveSeconds: ${config.timeToLiveSeconds}"
println "timeToIdleSeconds: ${config.timeToIdleSeconds}"
}
die EhCache javadoc for CacheConfiguration für die anderen sehen Cache-Eigenschaften. Sie können auch eine detaillierte Debug-Protokollierung des Zwischenspeicherns aktivieren, indem Sie grails.plugin.cache
und net.sf.ehcache
protokollieren.
Beachten Sie, dass die Grails-Caching-Plugins ihren eigenen Cache-Manager implementieren, der sich vom nativen EhCache-Cache-Manager unterscheidet. Wenn Sie EhCache direkt konfiguriert haben (mit ehcache.xml oder anderen Mitteln), werden diese Caches getrennt von den Caches ausgeführt, die vom Grails-Plugin verwaltet werden.
Hinweis: In älteren Versionen des Cache-EhCache-Plugins gab es tatsächlich einen Fehler, bei dem die TTL-Einstellung nicht korrekt eingestellt wurde und Objekte in einem Jahr abliefen; dies wurde in Grails-Cache-Ehcache 1.1 behoben.
diese Frage vor langer Zeit gefragt wurde, aber https sehen://jira.grils.org/browse/GPCACHEEHCACHE-6 –
@Ken, dass der Link jetzt unterbrochen ist – GreenGiant