Tak, wtyczka cache-ehcache
zdecydowanie obsługuje TTL i wszystkie właściwości konfiguracji pamięci podręcznej, które są natywnie obsługiwane przez EhCache. Jak stwierdzono w dokumencie, wtyczka bazowej pamięci podręcznej implementuje prostą pamięć podręczną w pamięci, która nie obsługuje TTL, ale DSL z pamięcią podręczną przechodzi przez wszelkie nieznane ustawienia konfiguracyjne do podstawowego dostawcy pamięci podręcznej.
Można skonfigurować ustawienia ehcache przez dodanie następujących do Config.groovy
lub 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
}
}
Można sprawdzić ustawienia cache przy starcie, co następuje:
grailsCacheManager.cacheNames.each {
def config = grailsCacheManager.getCache(it).nativeCache.cacheConfiguration
println "timeToLiveSeconds: ${config.timeToLiveSeconds}"
println "timeToIdleSeconds: ${config.timeToIdleSeconds}"
}
Zobacz EhCache javadoc for CacheConfiguration dla innych właściwości pamięci podręcznej. Można również włączyć szczegółowe rejestrowanie debugowania pamięci podręcznej, rejestrując grails.plugin.cache
i net.sf.ehcache
.
Należy pamiętać, że wtyczki cache Grails implementują własny menedżer pamięci podręcznej, który jest inny i niezależny od macierzystego menedżera pamięci podręcznej EhCache. Jeśli skonfigurowałeś EhCache bezpośrednio (używając ehcache.xml lub w inny sposób), to te pamięci podręczne będą działać niezależnie od pamięci podręcznych zarządzanych przez wtyczkę Grails.
Uwaga: Rzeczywiście istniał błąd w starszych wersjach wtyczki Cache-EhCache, w których ustawienie TTL nie było ustawione poprawnie, a obiekty wygasły w ciągu roku; zostało to naprawione w Grails-Cache-Ehcache 1.1.
to pytanie zostało zadane już dawno temu, ale zobaczyć https://jira.grails.org/browse/GPCACHEEHCACHE-6 –
@Ken link jest teraz uszkodzony – GreenGiant