【问题标题】:Can I listen to multiple caches using same com.tangosol.util.MapListener instance?我可以使用相同的 com.tangosol.util.MapListener 实例收听多个缓存吗?
【发布时间】:2016-08-01 09:06:50
【问题描述】:

我可以使用单个 com.tangosol.util.MapListener 实例收听多个 Coherence 缓存吗?从下面的代码 sn-p 中可以看出,我创建了一个 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);
}

【问题讨论】:

    标签: oracle-coherence


    【解决方案1】:

    您可以,但确定事件对应于哪个地图可能具有挑战性。如果您需要将事件分开但需要保持共享状态,我建议创建单独的侦听器对象,但让它们都持有对单个共享状态对象的引用。

    【讨论】:

    • 你好,布雷特。希望你一切顺利。你知道我们是否可以使用 com.tangosol.util.MapListener 实现超时功能吗?我们是否需要为此设置一个外部计时器机制,或者我们有办法使用 MapListener 来做到这一点?
    • 对不起,我太久没用过产品了,那些细节已经不记得了。我建议打开另一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2017-07-22
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    相关资源
    最近更新 更多