RabbitMQ ожидает завершения нескольких очередей
Хорошо, вот обзор того, что происходит:
M <-- Message with unique id of 1234
|
+-Start Queue
|
|
| <-- Exchange
/|\
/ | \
/ | \ <-- bind to multiple queues
Q1 Q2 Q3
\ | / <-- start of the problem is here
\ | /
\ | /
\|/
|
Q4 <-- Queues 1,2 and 3 must finish first before Queue 4 can start
|
C <-- Consumer
Итак, у меня есть обмен, который выдвигает несколько очередей, у каждой очереди есть задача, как только все задачи завершены, только тогда может начаться очередь 4.
Таким образом, сообщение с уникальным идентификатором 1234 отправляется на обмен, и маршрутизатор направляет его во все очереди задач (Q1, Q2, Q3 и т. Д.), Когда все задачи для идентификатора сообщения 1234 завершены, для сообщения запускается Q4 id 1234.
Как я могу это реализовать?
Использование Symfony2, RabbitMQBundle и RabbitMQ 3.x
Ресурсы:
http://www.rabbitmq.com/tutorials/amqp-concepts.htmlhttp://www.rabbitmq.com/tutorials/tutorial-six-python.htmlОБНОВЛЕНИЕ № 1
Хорошо, я думаю, это то, что я ищу:
https://github.com/videlalvaro/Thumper/tree/master/examples/parallel_processingRPC с параллельной обработкой, но как мне установить Correlation Id, чтобы он был моим уникальным идентификатором для группировки сообщений и определения какой очереди?