sql >> Databáze >  >> NoSQL >> Redis

Jak mohu implementovat tuto jedinou souběžně distribuovanou frontu v jakékoli platformě MQ?

Toho lze dosáhnout pomocí seznamů Redis s další frontou „odeslání“, kterou všichni pracovníci BRPOP za svou práci. Každá úloha ve frontě odeslání je označena původním ID fronty, a když pracovník dokončí úlohu, přejde do této původní fronty a provede RPOPLPUSH do fronty pro odeslání, aby byla další úloha dostupná pro jakéhokoli jiného pracovníka. Fronta odeslání tedy bude mít maximálně počet_front prvky.

Jedna věc, kterou budete muset zvládnout, je počáteční populace odesílací fronty, když je zdrojová fronta prázdná. Může to být pouze kontrola provedená vydavatelem proti příznaku „prázdný“ pro každou frontu, který je nastaven původně, a také nastavená pracovníkem, když v původní frontě nezbývá nic k odeslání. Pokud je tento příznak nastaven, vydavatel může pouze LPUSH první úlohu přímo do fronty pro odeslání.




  1. Aktualizace/upsert Mongoose?

  2. Stackexchange.Redis proč ConnectionMultiplexer.Connect vytváří dvě klientská připojení?

  3. Dotaz na Mongodb na měsíc, den, rok... data a času

  4. klient mongodb verze 3.0.0 robomongo mongovue