Я использую библиотеку Google Guava для кэширования. Для автоматического обновления кеша мы можем сделать следующее:
cache = CacheBuilder.newBuilder()
.refreshAfterWrite(15, TimeUnit.MINUTES)
.maximumSize(100)
.build(....);
Тем не менее, автоматическое обновление выполняется, когда первый простаивающий запрос для записи встречается.
Есть ли способ обновить его автоматически, даже несмотря на то, что для данных кэша не поступало запросов? Как и каждые 15 минут, данные кэша должны извлекаться из Db и загружать его, независимо от того, кто-либо назвал кеш данных или нет.
Кроме того, время истечения срока действия кэша Guava для всего кеша. Возможно ли истечь значения кеша на основе ключа? Как и данные кэша с ключом "NOT_SO_FREQ_CHANGE_DATA", срок истекает каждые 1 час, а данные с ключом "FREQ_CHANGING_DATA" должны истекать каждые 15 минут?