Java ehcache-有没有访问过期元素内容的解决方案?
我使用ehcache来缓存数据,通常是24小时的过期时间。我希望在元素过期时执行元素单独的操作。因此我需要元素内容。我注册了一个CacheEventListener,以便在元素过期时获得通知(notifyElementExpired)。不幸的是,在通知时间只有密钥是已知的-内容已经被丢弃,这是一种痛苦Java ehcache-有没有访问过期元素内容的解决方案?,java,ehcache,Java,Ehcache,我使用ehcache来缓存数据,通常是24小时的过期时间。我希望在元素过期时执行元素单独的操作。因此我需要元素内容。我注册了一个CacheEventListener,以便在元素过期时获得通知(notifyElementExpired)。不幸的是,在通知时间只有密钥是已知的-内容已经被丢弃,这是一种痛苦 是否有在过期时访问元素内容的解决方案 您可以创建自定义逐出策略,将所有调用委托给实际使用的策略。在您的实现中,您需要重写selectedBasedOnPolicy方法,您可以在其中指定操作: cl
是否有在过期时访问元素内容的解决方案 您可以创建自定义逐出
策略
,将所有调用委托给实际使用的策略。在您的实现中,您需要重写selectedBasedOnPolicy
方法,您可以在其中指定操作:
class MyEvictionPolicy extends LruPolicy { // you can subclass FifoPolicy or LfuPolicy here
@Override
public Element selectedBasedOnPolicy(Element[] sampledElements, Element justAdded) {
Element candidate = super.selectedBasedOnPolicy(sampledElements, justAdded);
if (candidate.isExpired()) {
// perform your action here
}
return candidate;
}
}
您可以创建自定义逐出
策略
,将所有调用委托给实际使用的策略。在您的实现中,您需要重写selectedBasedOnPolicy
方法,您可以在其中指定操作:
class MyEvictionPolicy extends LruPolicy { // you can subclass FifoPolicy or LfuPolicy here
@Override
public Element selectedBasedOnPolicy(Element[] sampledElements, Element justAdded) {
Element candidate = super.selectedBasedOnPolicy(sampledElements, justAdded);
if (candidate.isExpired()) {
// perform your action here
}
return candidate;
}
}
请看一个类似的问题。您可以在isExpired
方法中插入一些代码,并在结果为true
时相应地执行操作
是的,这可能不是最干净的方法,但应该有效。看看类似的问题。您可以在isExpired
方法中插入一些代码,并在结果为true
时相应地执行操作
是的,这可能不是最干净的方法,但应该有效