RabbitMQ -重新排列队列中已存在消息的优先级

3j86kqsm  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(225)

我们正在构建基于spark的作业。处理队列传递的每个消息都需要时间。需要能够重新设置已发送到队列的消息的优先级。
我知道有可用的优先级队列实现,但不确定如何重新确定队列中现有消息的优先级?
一个不好的解决方法是将该消息作为更高优先级再次推送,以便按优先级处理。稍后,当轮到下一个消息时,丢弃具有相同内容的低优先级或无优先级的消息。
有没有一种自然的方法可以处理这种情况或任何其他队列,更好地支持这种情况?

hfyxw5xn

hfyxw5xn1#

遗憾的是,没有。队列被视为正在传输的消息列表。无法删除/更新它们。
您提交更高优先级消息的方法是唯一可行的解决方案。
RabbitMQ是一个消息传递系统(例如邮政系统),它不是一个数据库或存储服务。队列形式的存储是一个必要的特性,就像邮政服务需要存储传输中的明信片一样。它是针对此目的而优化的,不允许轻松访问消息。

相关问题