java - Spring 4如何定时刷新ConcurrentMapCache?

标签 java spring caching

如果我使用 @Cashable 注释来缓存使用 ConcurrentMapCacheManager 的结果,那么我将如何在 Spring 4.3.5 中定期刷新缓存?

看起来 Ehcache 提供了一些实现,它取决于后备存储,但我想了解以防万一我不使用任何外部缓存后备存储。

我正在考虑的一个选项是定期调用一个方法,但是该方法将执行什么实现?我将如何收集并再次调用所有这些可缓存的方法?

看一些例子会很棒。

最佳答案

周期缓存刷新没有直接的spring抽象,也可以验证here来自 spring 文档,但是,您可以使用 @Scheduled 的简单计划方法实现相同的效果,如下所示:

@Scheduled(cron = "${YOUR_CRON_INTERVAL}")
@CacheEvict(value = "yourCache", allEntries = true)
public void resetAllEntries() {
    //write the code to repopulate the cache again here
}

关于java - Spring 4如何定时刷新ConcurrentMapCache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42897537/

相关文章:

java - 静态和非静态注释有什么区别?

java - Grails/groovy 测试 - assert 和 assertEquals 方法之间的任何区别

java - Docker - 无法在入口点内使用占位符

java - 如何使用 guava CacheBuilder?

java - 基于URL参数缓存JSP

java - Java中逐字将字符串转换为数组

java - JPA Criteria Query with IN operator for Set<?> with Spring DATA-JPA

java - Spring MVC 无法提供静态资源

java - 如何在 Java Spring MVC 创建时将大量数据作为文件提供?

asp.net - 每个用户或全局(对于所有用户)的跨服务器内存数据(作为变量)