首页 > 解决方案 > 在 RabbitMQ 中删除或更新消息

问题描述

我做了一些研究,但找不到任何解决方案来删除或修改队列中已经存在的消息。(RabbitMQ)。

用例:我正在尝试使用 RabbitMQ 中的延迟消息功能(headers.put("x-delay", 5000))发送通知(让我们说 30 分钟后)。我想发送一个可以删除/修改消息内容的事件。有什么方法可以在 RabbitMQ 中做到这一点。

另一种方法是使用数据库和调度程序,如果这是不可能的,我将实施。

提前致谢

标签: javarabbitmqspring-rabbit

解决方案


不太确定您的情况。假设您要删除或修改 RabbitMQ 上的现有消息。

如果您有 FIFO 情况,您可以查看如何选择性地从 AMQP (RabbitMQ) 队列中删除消息?

我可以建议的是,您可以使用插入和删除方法,将具有唯一 ID 的修改后的消息推送到 db/cache 和您的消息队列。并且每当您进行修改或删除时,将其从 db/cache 中删除。当消费者消费消息时,如果它不存在于 db/cache 中,它可以忽略它。


推荐阅读