RabbitMQ czeka na zakończenie wielu kolejek
OK tutaj jest przegląd tego, co się dzieje:
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
Mam więc wymianę, która przepycha się do wielu kolejek, każda kolejka ma zadanie, gdy wszystkie zadania zostaną zakończone, dopiero wtedy może rozpocząć się kolejka 4.
Tak więc wiadomość o unikalnym identyfikatorze 1234 zostaje wysłana do giełdy, centrala kieruje ją do wszystkich kolejek zadań (Q1, Q2, Q3 itd ...), gdy wszystkie zadania dla identyfikatora wiadomości 1234 zostały zakończone, uruchom Q4 dla wiadomości id 1234.
Jak mogę to zaimplementować?
Używanie Symfony2, RabbitMQBundle i RabbitMQ 3.x
Zasoby:
http://www.rabbitmq.com/tutorials/amqp-concepts.htmlhttp://www.rabbitmq.com/tutorials/tutorial-six-python.htmlAKTUALIZACJA # 1
Ok, myślę, że tego właśnie szukam:
https://github.com/videlalvaro/Thumper/tree/master/examples/parallel_processingRPC z przetwarzaniem równoległym, ale jak ustawić identyfikator korelacji jako mój unikalny identyfikator grupujący wiadomości i określający kolejkę?