改变play应用中Ehcache的持久化策略
Change persistence strategy of Ehcache in play application
我的目标:我想配置ehcache使用硬盘驱动器进行缓存。理想情况下,缓存内容将在应用程序重新启动后继续存在。
上下文:play 2.2
类路径
上具有play-cache_2.10-2.2.2.jar
和ehcache-core-2.6.6.jar
的应用程序
尝试:我还没有尝试太多,因为第一次尝试表明我从根本上遗漏了一些东西。
我刚刚在 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 文档here
• “localRestartable” — Enables the RestartStore and copies all cache entries (on-heap and/or off-heap) to disk. This option provides fast restartability with fault tolerant cache persistence on disk. This option is available for BigMemory Go only.
BigMemory Go 是 Terracotta 的付费产品,非开源。这可能是您收到错误的原因。
我的目标:我想配置ehcache使用硬盘驱动器进行缓存。理想情况下,缓存内容将在应用程序重新启动后继续存在。
上下文:play 2.2
类路径
play-cache_2.10-2.2.2.jar
和ehcache-core-2.6.6.jar
的应用程序
尝试:我还没有尝试太多,因为第一次尝试表明我从根本上遗漏了一些东西。
我刚刚在 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 文档here
• “localRestartable” — Enables the RestartStore and copies all cache entries (on-heap and/or off-heap) to disk. This option provides fast restartability with fault tolerant cache persistence on disk. This option is available for BigMemory Go only.
BigMemory Go 是 Terracotta 的付费产品,非开源。这可能是您收到错误的原因。