建立缓存后出现Spring Boot缓存退出

时间:2018-07-09 04:09:00

标签: spring spring-boot caching spring-cache

我们正在使用@Cacheable和@CacheEvict来实现缓存。

问题是,构建缓存需要3分钟以上的时间。根据应用程序逻辑,首先将清除缓存,然后再创建缓存。在这期间,如果有任何用户访问我们的应用程序,则由于仍在构建缓存,因此应用程序无法发送数据。

有没有什么弹簧方法可以首先构建缓存,然后用新的缓存(@CachePut除外)替换旧的缓存。

谢谢, 斯里坎特。

1 个答案:

答案 0 :(得分:0)

为什么不调用@Cachevict内部以@Cacheable注释的方法。因为清除缓存后会调用@Cacheabe方法并在那个时间间隔内加载数据?但这对内存缓存来说不是一个好习惯,因为缓存应基于请求。

@Cacheable(cacheNames = "***", key = "#CACHE_KEY")
public void doStuff(){

}

@Schedule(cron = "${your time}")
@Cachevict
 public void clearCache(){
    log("Cache evicting");
    doStuff();
}
相关问题