Un evento inviato a più ascoltatori, desidera registrare la notifica una sola volta

0

Ho un sistema in atto in cui una cache è composta da molti nodi di cache. Quando viene aggiunto uno, un evento CacheNodeAdded viene generato dalla cache. La cache ha un set ridondante di monitor che ascoltano questo evento. I monitor sono responsabili della notifica degli eventi di cache.

Poiché ho più monitor, ma desidero ricevere una notifica solo una volta, Passaggio 3 è ciò che sto cercando di implementare.

Soluzioni che non posso utilizzare:

  • Notifica della cache direttamente. I monitor devono essere utilizzati.
  • Chiedi a ciascun monitor di controllare il registro per vedere se la notifica è stata inviata. Poiché vengono eseguiti separatamente, tutti possono accedere contemporaneamente all'elenco delle notifiche, vedere la notifica non è stata inviata e, di conseguenza, notificare più volte.

Soluzione con cui sto giocando:

  • Quando viene ricevuto un evento, ottenere un elenco di tutti gli ID monitor (GUID), ordinare l'elenco e il primo monitor nell'elenco riceve l'invio della notifica. Questa è una soluzione semplice ma sembra un po 'poco elegante.

Ci sono altre semplici soluzioni che potrei ignorare?

    
posta Garrison Neely 26.03.2014 - 22:05
fonte

3 risposte

0

Ho finito per implementare la soluzione discussa nella mia domanda.

• Quando viene ricevuto un evento, ottenere un elenco di tutti gli ID monitor (GUID), ordinare l'elenco e il primo monitor nell'elenco riceve l'invio della notifica.

    
risposta data 01.04.2014 - 22:56
fonte
0

Un blocco di scrittura può essere acquisito dal Monitor che ha ricevuto l' evento sul registro , loggare e impostare flag loggato su 'true' nel contesto di logging globale che tutti i Monitors possono cercare e aggiornare ha un riferimento a. I monitor successivi possono saltare il passo di registrazione dopo aver letto lo stato del flag registrato.

La ricerca del flag di contesto in memoria è prevista meno costosa di quella del log stesso.

    
risposta data 27.03.2014 - 01:35
fonte
0

Non è chiaro a cosa servono gli altri tuoi monitor se non invieranno notifiche.

C'è qualche motivo per cui non è possibile aggiungere o disporre di un'istanza di monitoraggio singola responsabile della trasmissione delle notifiche?

    
risposta data 27.03.2014 - 19:54
fonte

Leggi altre domande sui tag