计划弹簧缓存逐出?

2022-09-01 18:18:06

是否可以将春季缓存逐出安排在每天午夜?

我已经阅读了Spring Cache Docs,但没有发现任何关于计划缓存驱逐的信息。

我需要每天逐出缓存并重新缓存它,以防我的应用程序外部发生一些更改。


答案 1

尝试使用@Scheduled示例:

@Scheduled(fixedRate = ONE_DAY)
@CacheEvict(value = { CACHE_NAME })
public void clearCache() {  
    log.debug("Cache '{}' cleared.", CACHE);    
}

您还可以将 cron 表达式与 @Scheduled。


答案 2

如果在带有参数的方法上使用@Cacheable,则永远不要忘记@CacheEvict上的 allEntries=true 注释属性,否则您的调用只会逐出您提供给 clearCache() 方法的键参数,这不算什么 =>您不会从缓存中逐出任何内容。


推荐