Ehcache刷新缓存不是定期但有条件的

时间:2015-03-12 14:11:26

标签: spring caching refresh conditional ehcache

我正在使用带有spring架构的ehcache。

现在,我正在从数据库每隔15分钟的FIXED间隔刷新缓存。

@Cacheable(cacheName = "fpodcache",refreshInterval=60000, decoratedCacheType= DecoratedCacheType.REFRESHING_SELF_POPULATING_CACHE)
public List<Account> getAccount(String key) {
     //Running a database query to fetch the data.
}

而不是基于时间的缓存刷新,我想要基于CONDITION的缓存刷新。它背后有两个原因 - 1.数据库不经常更新(每天15次但不是固定的间隔)和2.获取和缓存的数据量很大。

所以,我决定维护两个变量 - 数据库中的版本(version_db)和缓存中的一个版本(version_cache)。我想提出if(version_db&gt; version_cache)然后只刷新缓存的条件,否则不要刷新。像 -

这样的东西
@Cacheable(cacheName = "fpodcache", conditionforrefresh = version_db>version_cache, decoratedCacheType= DecoratedCacheType.REFRESHING_SELF_POPULATING_CACHE)
public List<Account> getAccount(String key) {
     //Running a database query to fetch the data.
}

上述代码中conditionforrefresh = version_db&gt; version_cache的正确语法是什么?

我如何实现这一目标?

0 个答案:

没有答案