Puoi ottenere ciò utilizzando gli elenchi Redis con una coda di "invio" aggiuntiva che tutti i lavoratori BRPOP
avanti per il loro lavoro. Ogni lavoro nella coda di invio è contrassegnato con l'ID coda originale e, quando il lavoratore ha completato il lavoro, passa a questa coda originale ed esegue RPOPLPUSH
nella coda di spedizione per rendere disponibile il lavoro successivo per qualsiasi altro lavoratore. La coda di spedizione avrà quindi un massimo di num_code elementi.
Una cosa che dovrai gestire è la popolazione iniziale della coda di invio quando la coda di origine è vuota. Questo potrebbe essere solo un controllo eseguito dall'editore rispetto a un flag "vuoto" per ciascuna coda impostata inizialmente e impostato anche dal lavoratore quando non è rimasto nulla nella coda originale da inviare. Se questo flag è impostato, l'editore può semplicemente LPUSH
il primo lavoro direttamente nella coda di invio.