Можно ли настроить Ehcache таким образом, чтобы кеш возвращал «просроченные» данные в случае сбоя основного CacheLoaderWriter (выдает исключение)?
Согласно моим тестам, если заданная запись в кешесрок действия истек, и CacheLoaderWriter не может загрузить данные, кеш возвращает ноль.
Однако в моем случае было бы лучше вернуть просроченные кэшированные данные, чем ничего.В качестве обходного пути я сохраняю последние успешно загруженные данные в CacheLoaderWriter, поэтому в случае сбоя при новом выполнении загрузки я возвращаю эту копию.В любом случае, подумайте, что было бы более «эффективно использовать память», чтобы каким-то образом возвращать данные, которые уже находятся в кэше, вместо сохранения другой копии в CacheLoaderWriter.
Я использую ehcache 3.4.0
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("myCacheName",
CacheConfigurationBuilder.newCacheConfigurationBuilder(Integer.class, String.class, ResourcePoolsBuilder.heap(100))
.withExpiry(Expirations.timeToLiveExpiration(Duration.of(4, TimeUnit.HOURS)))
.withLoaderWriter(new TestCacheLoaderWriter()))
.build();