Кэш кофеина метод refreshAfterWrite, выбрасывающий refreshAfterWrite, требует исключения LoadingCache
У меня есть требование повторно кэшировать кэш с истекшим сроком действия путем повторного вызова API
Ниже моя конфигурация диспетчера кэша
private CaffeineCache buildCache(String name, Ticker ticker, int minutesToExpire) {
return new CaffeineCache(name, Caffeine.newBuilder()
.refreshAfterWrite(minutesToExpire, TimeUnit.MINUTES)
.maximumSize(100)
.ticker(ticker)
.build());
Но при запуске приложения выдает следующее исключение
Вызывается: java.lang.IllegalStateException: refreshAfterWrite требует LoadingCache
0 ответов
Вам необходимо предоставить CacheLoader дляbuild
метод.
return new CaffeineCache(
name,
Caffeine.newBuilder()
.refreshAfterWrite(minutesToExpire, TimeUnit.MINUTES)
.maximumSize(100)
.ticker(ticker)
.build(key -> createExpensiveObject(key))
);
CacheLoader - это класс / метод, который должен быть реализован вами.