我已经做了一些研究,但找不到任何解决方案来删除或修改队列中已经存在的消息。(RabbitMQ)。
用例:我正在尝试使用RabbitMQ中的延迟消息功能(headers.put("x-delay",5000))发送通知(比方说30分钟后)。我想发送一个可以删除/修改消息内容的事件。在RabbitMQ中有什么方法可以做到这一点吗?
另一种方法是使用数据库和调度程序,如果这是不可能的,我将实现。
提前感谢
发布于 2020-06-03 18:17:24
对你的场景不是很确定。假设您想要删除或修改RabbitMQ上的现有消息。
如果你有先进先出的情况,你可以检查这个How to selectively delete messages from an AMQP (RabbitMQ) queue?
我可以建议的是,您可以使用插入和删除方法,将修改后的具有唯一id的消息推送到db/cache和您的消息队列中。无论何时进行修改或删除,请将其从db/cache中删除。当消费者使用消息时,如果消息不在db/cache中,它可以忽略它。
https://stackoverflow.com/questions/62168612
复制相似问题