仅在所有较高优先级的消息都已完成传递后,才如何传递较低优先级的消息?

时间:2019-01-11 07:06:59

标签: node.js rabbitmq

如何确保仅在发送所有优先级为1的消息之后才发送优先级为2的消息?

我正在向用户发送通知,每个用户都有可能有多个通知。这些通知具有与之关联的优先级,目标是用户仅收到最高优先级的消息。

目标-我想先传送优先级为1的所有消息,然后再开始传送优先级为2的消息。

约束-我无法同时传递不同优先级的通知消息。我只能同时传递相同优先级的通知消息。

理想情况下我想拥有

  1. 我将单个优先级的所有消息转储到的队列。此队列将有多个使用者,这些使用者将同时传递这些消息。

  2. 一旦所有优先级为1的消息都已传递并且队列为空,我将所有优先级为2的消息转储到队列中以由多个使用者同时传递

    < / li>
  3. 为后续优先级继续上述过程

问题-我想知道如何在RabbitMQ中实现此设计/流程?另外,还有一种更好的方法来处理这种情况。

如果我对某些事情无法理解,请告诉我,并可以添加更多详细信息进行澄清。

谢谢

1 个答案:

答案 0 :(得分:0)

RabbitMQ支持priority queues。请仔细阅读该文档,尤其是具有许多不同优先级的性能带来的影响。


注意: RabbitMQ团队监视the rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。