我的目标:我想配置 ehcache 以使用硬盘驱动器进行缓存。理想情况下,缓存内容将在应用程序重新启动后继续存在。
上下文:在类路径上具有play-cache_2.10-2.2.2.jar
和ehcache-core-2.6.6.jar
play 2.2
应用程序
尝试:我还没有尝试太多,因为第一次尝试表明我从根本上错过了一些东西。
我刚刚在app/conf
下创建了一个ehcache.xml
文件
<ehcache>
<diskStore path="/var/myapp/persistent/cache>
<defaultCache
maxBytesLocalHeap="512M"
eternal="false"
timeToIdleSeconds="90000"
timeToLiveSeconds="0"
maxBytesLocalDisk="10G"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU">
<persistence strategy="localRestartable" />
</defaultCache>
</ehcache>
投诉:
net.sf.ehcache.config.InvalidConfigurationException:
Cannot use localRestartable persistence and disk overflow in the same cache
...
net.sf.ehcache.CacheManager.addCache(CacheManager.java:1177)
play.api.cache.EhCachePlugin.cache$lzycompute(Cache.scala:143)
play.api.cache.EhCachePlugin.cache(Cache.scala:142)
play.api.cache.EhCachePlugin.onStart(Cache.scala:159)
...
问:如何将持久性策略更改为与disk overflow
不同的策略?如何配置 ehcache 以使用硬盘驱动器进行缓存?
根据EhCache文档
这里·"localRestartable" — 启用RestartStore并将所有缓存条目(堆上和/或堆外(复制到磁盘。此选项提供快速重启能力,并在磁盘上实现容错缓存持久性。此选项仅适用于 BigMemory Go。
BigMemory Go是Terracotta的付费产品,不是开源的。这可能是您收到错误的原因。