Rabbit MQ事件的并发和同步

时间:2016-09-26 08:29:12

标签: node.js rabbitmq

在我们的开发过程中,我们面临以下情况: 事件以某种顺序生成事件链: 让我们说 创建Item1,更新项目1,完成项目1, 创建Item2,更新项目2,完成项目2。

请记住,项目1和2的事件是并行分派的。 我们需要为每个项目顺序处理第1项和第2项的事件,而不阻止不相关的操作,例如:创建项目1并创建项目2可以并行运行,而CreateItem1和更新项目1必须按顺序运行。

主要问题是如何在不为每个项目创建专用队列的情况下实现此类行为? 物品数量未知。 有多个生产者和多个消费者处理事件。

1 个答案:

答案 0 :(得分:1)

答案很简单:不要平行发射这些事件。如果必须在Update Item事件之后处理Create Item事件,那么Create Item消费者在完成处理Update Item事件后应发出Create Item事件是很自然的。

BTW:每个项目都有一个单独的队列,只有在这样的队列上有一个消费者并且你能保证事件以正确的顺序发出时才有效。