我一直在 infinispan 的文档中搜索,但找不到一种简单的方法来自动刷新 get 后条目的过期时间。
今天我要注册一个监听器,并在 @CacheEntryVisited 事件中将其删除并再次放入其中,但这当然并不理想。
@CacheEntryVisited
public void entryVisited(CacheEntryVisitedEvent<String, String> event) {
cache.remove(event.getKey);
cache.put(event.getKey(), event.getValue(), 10, TimeUnit.SECONDS);
}
是否可以在 CacheManager 中使用某种配置来进行刷新?
提前致谢
最佳答案
您可以启用最大空闲到期时间,如 [1] 中所述。此外,您可能正在寻找的方法是 [2],它需要生命周期和最大空闲到期时间。您可以传递 -1 作为值,这意味着不用于过期。
此外,在集群缓存中使用最大空闲时间时应小心,因为不能保证其他节点会更新其空闲访问时间(如果您读取的是本地数据)。
[1] http://infinispan.org/docs/dev/user_guide/user_guide.html#expiration_details
关于java - get时刷新Infinispan中条目的过期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48434380/