我做了一些研究,但无法找到任何解决方案来删除或修改队列中已存在的消息。(RabbitMQ)。
用例:我尝试使用 RabbitMQ 中的延迟消息功能 (headers.put("x-delay", 5000)) 发送通知(假设 30 分钟后)。我想发送一个可以删除/修改消息内容的事件。 RabbitMQ 有什么办法可以做到这一点吗?
替代方法是使用数据库和调度程序,如果不可能的话我将实现它。
提前致谢
最佳答案
不太确定您的情况。假设您要删除或修改 RabbitMQ 上的现有消息。
如果你有 FIFO 的情况,你可以检查这个 How to selectively delete messages from an AMQP (RabbitMQ) queue?
我可以建议的是,您可以使用插入和删除方法,将具有唯一ID的修改消息推送到数据库/缓存和您的消息队列。每当您进行修改或删除时,请将其从数据库/缓存中删除。当消费者消费该消息时,如果该消息不存在于 db/cache 中,它可以忽略。
关于java - 在 RabbitMQ 中删除或更新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62168612/