Spring cache - как вернуться к исходному кешу, если логика обновления не удалась? - @cacheable @cacheput @cacheevict
@Cacheable(value = "moviesCache")
public Collection<Movies> getMovies() {
Collection<Movies> moviesList = new ArrayList<>();
//populate moviesList by going to the DB within a Try/Catch. Return an empty list if it fails or
//a list of movies if it doesn't
return moviesList;
}
@CacheEvict("moviesCache")
public void resetMoviesCache() {
}
Возьмите вышеуказанные методы, используемые для кеширования и удаления переменной кеширования moviesCache. Моя текущая логика вызывает метод getMovies при запуске, и он отлично работает. Затем я обновляю переменную moviesCache, удаляя ее и регенерируя, вызывая методы resetMoviesCache и getMovies в указанном порядке. Это тоже отлично работает.
Вот в чем проблема. Если происходит обновление и операция db завершается неудачно, в результате чего код возвращает пустой массив, кеш теперь пуст. Есть ли способ сохранить исходный кеш, который был сохранен до сбоя, и вернуться к нему, когда будет возвращен пустой массив? Я с нетерпением жду ответов на эти вопросы. Спасибо.