node.js - 高优先级的消息全部投递完毕后,如何投递低优先级的消息?
问题描述
如何保证优先级2的消息只有在所有优先级1的消息都送达后才能送达?
我正在向我的用户发送通知,并且每个用户都有资格获得多个通知。这些通知具有与之相关的优先级,目标是用户只接收最高优先级的消息。
目标- 我想在开始传递优先级 2 的消息之前传递所有优先级 1 的消息。
约束- 我不能同时传递不同优先级的通知消息。我只能同时传递相同优先级的通知消息。
理想情况下,我想拥有
我将单个优先级的所有消息转储到的队列。该队列将有多个消费者同时传递这些消息。
一旦所有优先级为 1 的消息都已交付并且队列为空,我会将优先级为 2 的所有消息转储到队列中,以便由多个消费者同时交付
对后续优先级继续上述过程
问题- 我想知道如何在 RabbitMQ 中实现这个设计/流程?或者是否有更好的方法来处理这种情况。
如果我对某些事情无法理解,请告诉我,并可以添加更多细节来澄清。
谢谢
解决方案
RabbitMQ 支持优先级队列。请仔细阅读文档,尤其是具有许多不同优先级的性能影响。
注意: RabbitMQ 团队会监控邮件列表,rabbitmq-users
有时只会在 StackOverflow 上回答问题。
推荐阅读
- reactjs - React 测试下载子组件
- api - 在 api 平台上调用带有 json 数据的控制器
- java - 如何在 UIMA RUTA 中设置变量
- javascript - Laravel:Vue.js 页面未在生产环境中显示
- python - 在循环中将所有 numpy 数组写入二进制文件
- php - 在 WooCommerce 商店页面上显示 ACF
- powershell - Windows 窗体中的 PowerShell 变量 IF 语句
- python - 如何在气流中将列表作为变量传递给 SQL
- python - 从具有不同级别的一个处理程序创建两个单独的日志文件
- if-statement - 当其他变量占据最高值时,如何根据国家/地区的条件创建一个变量?