2016-08-01 39 views
1

我可以使用單個com.tangosol.util.MapListener實例來聆聽多個Coherence緩存嗎?從下面的代碼片段可以看出,我創建了一個MapListener的實例,並使用相同的實例來偵聽多個一致性緩存。我擔心的是,如果從兩個緩存中生成多個事件,這段代碼是否可以工作?我可以使用相同的com.tangosol.util.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); 
} 

回答

1

你可以,但確定一個事件對應哪個映射可能會有挑戰性。如果你需要保持獨立的事件,但你需要保持共享狀態,我會建議創建單獨的偵聽器對象,但它們都擁有對單個共享狀態對象的引用。

相關問題