2016-08-01 4 views
1

Могу ли я прослушивать несколько кэшей Coherence с использованием одного экземпляра com.tangosol.util.MapListener? Как видно из приведенного ниже фрагмента кода, я создал экземпляр 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

Вы можете, но может быть сложно определить, на какую карту соответствует событие. Если вам нужно, чтобы события были раздельными, но вам нужно поддерживать разделяемое состояние, я бы предложил создать отдельные объекты прослушивателя, но они оба держат ссылку на один объект общего состояния.