我可以使用同一个 com.tangosol.util.MapListener 实例监听多个缓存吗?
Can I listen to multiple caches using same com.tangosol.util.MapListener instance?
我可以使用单个 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);
}
可以,但确定事件对应于哪个地图可能具有挑战性。如果您需要将事件分开但又需要保持共享状态,我建议创建单独的侦听器对象,但让它们都持有对单个共享状态对象的引用。
我可以使用单个 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);
}
可以,但确定事件对应于哪个地图可能具有挑战性。如果您需要将事件分开但又需要保持共享状态,我建议创建单独的侦听器对象,但让它们都持有对单个共享状态对象的引用。