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 завершается неудачно, в результате чего код возвращает пустой массив, кеш теперь пуст. Есть ли способ сохранить исходный кеш, который был сохранен до сбоя, и вернуться к нему, когда будет возвращен пустой массив? Я с нетерпением жду ответов на эти вопросы. Спасибо.

0 ответов

Другие вопросы по тегам