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?