Redis
 sql >> база данни >  >> NoSQL >> Redis

Как мога да внедря тази единична разпределена опашка с паралелност във всяка MQ платформа?

Можете да постигнете това с помощта на Redis списъци с допълнителна опашка за "изпращане", която всички работници BRPOP за техните работни места. Всяко задание в опашката за изпращане е маркирано с оригиналния идентификатор на опашката и когато работникът завърши задачата, той отива в тази оригинална опашка и изпълнява RPOPLPUSH на опашката за изпращане, за да направи следващата работа достъпна за всеки друг работник. Следователно опашката за изпращане ще има максимум num_queues елементи.

Едно нещо, с което ще трябва да се справите, е първоначалната популация на опашката за изпращане, когато изходната опашка е празна. Това може да бъде просто проверка, извършена от издателя срещу "празен" флаг за всяка опашка, която е зададена първоначално, и също така зададена от работника, когато в оригиналната опашка не е останало нищо за изпращане. Ако този флаг е зададен, издателят може просто LPUSH първото задание директно в опашката за изпращане.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Промяната на Redis порта в Docker Compose не работи

  2. Как да задам клъстер за редис на elasticache като подчинен?

  3. Кеширане на туитове с помощта на Node.js, Redis и Socket.io

  4. Как да проверявате и отменяте задачи от Celery по име на задачата

  5. Безопасно излъчване на съобщения, което да се консумира от конкретен получател с помощта на redis и python