获取时刷新Infinispan条目的过期时间
Refresh expiration time of entry in Infinispan on get
我一直在 infinispan 的文档中搜索,但找不到在获取后自动刷新条目过期时间的简单方法。
今天我注册了一个 Listener,在 @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
我一直在 infinispan 的文档中搜索,但找不到在获取后自动刷新条目过期时间的简单方法。
今天我注册了一个 Listener,在 @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