Abbiamo creato un sistema di messaggi utilizzando messaggi prioritari. L'idea alla base di questo è la seguente:
- Abbiamo un elenco di clienti.
- Tutti i client sanno se (e quale tipo di priorità) hanno i messaggi disponibili per l'invio.
- Un client deve inviare prima il suo messaggio con priorità più alta.
- Tutti i client devono continuare a inviare, se ci sono client con messaggi con priorità più bassa, questi client hanno anche bisogno di tempo per inviare, ma una priorità più alta è ancora più importante.
Abbiamo il seguente meccanismo:
- Cerchiamo il cliente che è il prossimo in linea con un messaggio prioritario. Inviamo inviare questo messaggio ad alta priorità.
- Guardiamo (contatore diverso) per il prossimo in linea con qualsiasi priorità messaggio non importa. Inviamo questo messaggio.
Ad esempio nel passaggio 1 troviamo che il client b è il primo ad avere un messaggio con priorità alta e lo spediamo.
Quindi il passaggio 2 rileva che il client A ha un messaggio con priorità bassa e inviamo questo messaggio.
Quindi torna al passaggio 1. Il cliente B ha ancora un altro messaggio di priorità, ma stiamo andando a quello successivo in modo che tutti i client abbiano l'opportunità di inviare in modo che il messaggio ad alta priorità del cliente C sia ora inviato.
Quindi ripeti il passaggio 2, Abbiamo inviato un messaggio per il cliente A, quindi ora stiamo andando per il prossimo cliente che è B, come abbiamo detto che il cliente B ha ancora un messaggio con priorità alta in modo da inviare questo messaggio.
Questo continua ad andare avanti e avanti.
Quindi la mia domanda: è questo il modo migliore per farlo? Ci sono schemi o modi per farlo in un modo migliore? (forse più efficiente)