Можно ли перехватить события кэша (положить / получить) с помощью Spring cache? - PullRequest
0 голосов
/ 09 марта 2020

Я хочу, чтобы мое приложение продолжало работать, даже если кэш отключился во время выполнения.

Итак, во-первых, я переопределил обработчик кэша по умолчанию:

  @Configuration
  public class CachingConf extends CachingConfigurerSupport {

@Override
public CacheErrorHandler errorHandler() {   
    return new CustomRedisErrorHandler(); //it just logs error in presence of errors
 }
}

Таким образом, когда кэш выходит из строя, вызывается базовый сервис и все продолжает работать.

В любом случае этого недостаточно: фреймворк все еще пытается в течение n секунд связаться с удаленным сервером кеша, поэтому я хотел бы добавить разрыв цепи. Когда кэш отключается, я просто обхожу его на n секунд.

Для этого мне нужно перехватить все операции с кешем (получить / поставить) и украсить их с помощью resilience4j. Это возможно? Кажется, я не могу найти какой-либо способ сделать это!

С поддержкой конфигуратора кэширования я мог бы использовать свой собственный менеджер кэша, однако я не знаю во время выполнения, какой тип кэша у меня будет.

...