好的,以下是正在发生的事情的概述:
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才能开始工作。
因此,带有唯一ID为1234的消息被发送到交换机,交换机将其路由到所有任务队列(Q1、Q2、Q3等)。当消息ID为1234的所有任务完成后,运行消息ID为1234的Q4。
该如何实现呢?
使用Symfony2、RabbitMQBundle和RabbitMQ 3.x。
资源:
- http://www.rabbitmq.com/tutorials/amqp-concepts.html
- http://www.rabbitmq.com/tutorials/tutorial-six-python.html
更新 #1
好的,我想这就是我要找的:
使用并行处理的RPC,但是我该如何将关联ID设置为我的唯一ID以分组消息并确定是哪个队列?