我可以使用单个com.tangosol.util.MapListener
实例收听多个Coherence缓存吗?从下面的代码片段中可以看出,我创建了一个MapListener
实例,并使用相同的实例来监听多个一致性缓存。我担心的是,如果从两个缓存生成多个事件,这段代码是否可以工作?
protected class MapListenerImpl implements MapListener {
@Override
public void entryDeleted(MapEvent event) {
System.out.println("Delete Event: " + event.getOldEntry());
}
@Override
public void entryInserted(MapEvent event) {
System.out.println("INsert Event: " + event.getNewEntry());
}
@Override
public void entryUpdated(MapEvent event) {
System.out.println("Update Event: " + event.getNewEntry());
}
}
//Main Method
public static void main(String[] args) {
//Initializing the caches here
NamedCache mapTrades1;
NamedCache mapTrades2;
MapListener listener = new MapListenerImpl();
mapTrades1.addMapListener(listener);
mapTrades2.addMapListener(listener);
}
答案 0 :(得分:2)
您可以,但确定事件对应的地图可能具有挑战性。如果你需要保持事件分离,但你需要保持共享状态,我建议创建单独的侦听器对象,但让它们都持有对单个共享状态对象的引用。