Per chiarire, poiché non sono del tutto sicuro di come riassumere nel titolo.
Ho un cluster redis e un programmatore redis-backed (simile a sidekiq / resque, ecc.)
Il mio cluster redis ha un master e un paio di slave. Inserisco un lavoro sul master e questo viene replicato sugli slave.
Ho 4 lavoratori che ascoltano questi schiavi.
Il problema: voglio che un lavoro venga raccolto una sola volta. Ma come è attualmente impostato è che un lavoro verrà replicato tra gli schiavi, che verrà poi prelevato da più lavoratori, duplicando il carico di lavoro.
Gradirei qualche suggerimento su come risolvere questo problema. Potrei usare le code specifiche dell'operatore e quindi pianificare un lavoro su una particolare coda. Ma questo continuerà a replicarsi tra schiavi e lavori di ricostruzione che non vengono mai raccolti e che dovranno essere eliminati.
Capisco che redis non sia costruito per questo tipo di passaggio di messaggi e forse qualcosa come rabbitmq sarebbe una soluzione migliore. Aperto a qualsiasi idea.