Phi*_*ffi 6 java spring spring-cache
是否有可能在每天午夜安排弹簧缓存驱逐?
我读过Springs Cache Docs,但没有发现计划缓存驱逐.
我需要每天逐出缓存并重新缓存它,以防我的应用程序之外发生一些变化.
Ole*_*huk 13
尝试使用@Scheduled示例:
@Scheduled(fixedRate = ONE_DAY)
@CacheEvict(value = { CACHE_NAME })
public void clearCache() {
}
Run Code Online (Sandbox Code Playgroud)
你也可以在@Scheduled中使用cron表达式.
小智 11
如果您在带参数的方法上使用 @Cacheable,则永远不要忘记@CacheEvict 上的 allEntries=true注释属性,否则您的调用只会驱逐您提供给 clearCache() 方法的关键参数,这没什么 =>不要从缓存中驱逐任何东西。
也许不是最优雅的解决方案,但@CacheEvict不起作用,所以我直接选择了CacheManager.
此代码清除通过调度程序调用的缓存foo:
class MyClass {
@Autowired CacheManager cacheManager;
@Cacheable(value = "foo")
public Int expensiveCalculation(String bar) {
...
}
@Scheduled(fixedRate = 60 * 1000);
public void clearCache() {
cacheManager.getCache("foo").clear();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9546 次 |
| 最近记录: |