RabbitMQ wartet, bis mehrere Warteschlangen beendet sind

Ok hier ist eine Übersicht über das, was los ist:

    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 

Ich habe also eine Vermittlungsstelle, die in mehrere Warteschlangen pusht. Jede Warteschlange hat eine Aufgabe. Sobald alle Aufgaben erledigt sind, kann Warteschlange 4 erst gestartet werden.

Eine Nachricht mit der eindeutigen ID 1234 wird an die Vermittlungsstelle gesendet. Die Vermittlungsstelle leitet sie an alle Aufgabenwarteschlangen (Q1, Q2, Q3 usw.) weiter. Wenn alle Aufgaben für die Nachrichten-ID 1234 abgeschlossen sind, führen Sie Q4 für die Nachricht aus id 1234.

Wie kann ich das umsetzen?

Mit Symfony2, RabbitMQBundle und RabbitMQ 3.x

Ressourcen:

http://www.rabbitmq.com/tutorials/amqp-concepts.htmlhttp://www.rabbitmq.com/tutorials/tutorial-six-python.html

UPDATE # 1

Ok, ich denke das ist was ich suche:

https://github.com/videlalvaro/Thumper/tree/master/examples/parallel_processing

RPC mit paralleler Verarbeitung, aber wie lege ich die Korrelations-ID als meine eindeutige ID fest, um die Nachrichten zu gruppieren und auch zu identifizieren, welche Warteschlange?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage