更改 Ehcache 在播放应用程序中的持久性策略



我的目标:我想配置 ehcache 以使用硬盘驱动器进行缓存。理想情况下,缓存内容将在应用程序重新启动后继续存在。

上下文:在类路径上具有play-cache_2.10-2.2.2.jarehcache-core-2.6.6.jarplay 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的付费产品,不是开源的。这可能是您收到错误的原因。

最新更新