Spring кэшируемое принудительное обновление

Например, у меня есть веб-приложение, которое показывает рекомендуемые фильмы каждому пользователю. Метод службы выполняет вызов API на другую платформу и возвращает фильмы. Мне нужно реализовать следующую логику:
Пользователь запрашивает рекомендации своих фильмов. Если вызов API был успешным, поместите его в кеш и вернитесь. В противном случае нет (если метод вернул null). Но пользователь также может нажать кнопку обновления. В этом случае удалите кеш для этого пользователя, выполните вызов API и снова поместите его в кеш. Как я могу принудительно обновить кеш?


person Feeco    schedule 07.11.2016    source источник


Ответы (2)


Вы можете добавить condition параметр @Cacheable. Если оцененное значение равно false, метод будет вызван.

person Beck Yang    schedule 09.11.2016

Существует аннотация @CacheEvict, которую вы можете использовать в методе, запускающем «обновление». Дополнительные сведения см. в документации.

person Stephane Nicoll    schedule 07.11.2016
comment
Это способ не создавать еще один метод с аннотацией @CacheEvict? Точно так же, как передать boolean force аргументам метода и выселить его, если это правда? - person Feeco; 07.11.2016