Изменить стратегию сохранения Ehcache в игровом приложении - PullRequest
0 голосов
/ 28 июня 2018

Моя цель : я хочу настроить ehcache на использование жесткого диска для кэширования. В идеале содержимое кеша выдержит перезапуск приложения.

Контекст : play 2.2 приложение с play-cache_2.10-2.2.2.jar и ehcache-core-2.6.6.jar на пути к классам

Попробуйте : я еще не слишком старался, потому что первая попытка показывает, что я что-то упустил принципиально.

Я только что создал ehcache.xml файл в app/conf

<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 на использование жесткого диска для кэширования?

1 Ответ

0 голосов
/ 19 июля 2018

Согласно документации EhCache здесь

• «localRestartable» - включает RestartStore и копирует все записи в кеш (в куче и / или вне кучи) на диск. Эта опция обеспечивает быструю перезагрузку с отказоустойчивым сохранением кэша на диске. Эта опция доступна только для BigMemory Go .

BigMemory Go - это платный продукт от Terracotta, который не является открытым исходным кодом. Возможно, именно поэтому вы получаете сообщение об ошибке.

...