gpt4 book ai didi

java - 覆盖 JCS 事件

转载 作者:行者123 更新时间:2023-12-01 06:00:07 27 4
gpt4 key购买 nike

我在应用程序中使用 Apache JCS 在应用程序启动时缓存常用数据。但是,如果缓存中的某些数据直到空闲时间才使用,我想从数据库手动重新加载该值。

所以,基本上我想重写 JCS 事件,以便我的 java 程序知道由于 key 达到空闲时间而从缓存中删除 key 的瞬间。

最佳答案

创建一个抽象类来注册您想要捕获的事件。这有助于我捕获这两个事件。

private static final Set<Integer> EVENTS = new HashSet<Integer>();
{
EVENTS.add(IElementEventHandler.ELEMENT_EVENT_EXCEEDED_IDLETIME_BACKGROUND);
EVENTS.add(IElementEventHandler.ELEMENT_EVENT_EXCEEDED_MAXLIFE_BACKGROUND);
}
@Override
public synchronized void handleElementEvent(IElementEvent event) {
// Check for element expiration based on EVENTS.
LOG.debug("Handling event of type : " + event.getElementEvent() + ".");
if (EVENTS.contains(event.getElementEvent())) {
ElementEvent elementEvent = (ElementEvent)event;
CacheElement element = (CacheElement)elementEvent.getSource();
handleEvent(element);
}

}
// Abstract method to handle events
protected abstract void handleEvent(CacheElement element);
}

将此抽象事件处理程序添加到 jcs 工厂定义中,如下所示

 JCS jcs = JCSCacheFactory.getCacheInstance(regionName);
IElementAttributes attributes = jcs.getDefaultElementAttributes();
attributes.addElementEventHandler(handler);
jcs.setDefaultElementAttributes(attributes);

关于java - 覆盖 JCS 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/947910/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com