});
nodeCache = new RefreshMemoryMirror<Long, Node>(timeout, new ComputeFunction<Long, Node>() {
public Node apply(Long key, Node oldValue) {
FindNodeEvent event = new FindNodeEvent();
event.setNid(key);
try {
Object obj = nodeCommmunicationClient.callManager(event);
if (obj != null && obj instanceof Node) {
return (Node) obj;
} else {
throw new ConfigException("No Such Node by id[" + key + "]");
}
} catch (Exception e) {
logger.error("call_manager_error", event.toString(), e);
}
// 其他情况直接返回内存中的旧值
return oldValue;
}
});
channelCache = new RefreshMemoryMirror<Long, Channel>(timeout, new ComputeFunction<Long, Channel>() {
public Channel apply(Long key, Channel oldValue) {
FindChannelEvent event = new FindChannelEvent();
event.setChannelId(key);
try {
Object obj = nodeCommmunicationClient.callManager(event);
if (obj != null && obj instanceof Channel) {
updateMapping((Channel) obj, null);// 排除下自己
return (Channel) obj;
} else {
throw new ConfigException("No Such Channel by pipelineId[" + key + "]");
}
} catch (Exception e) {
logger.error("call_manager_error", event.toString(), e);
}
// 其他情况直接返回内存中的旧值
return oldValue;
}
});