java - 在 RabbitMQ 中删除或更新消息

标签 java rabbitmq spring-rabbit

我做了一些研究,但无法找到任何解决方案来删除或修改队列中已存在的消息。(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/

相关文章:

rabbitmq - RabbitMQ 是用什么语言编写的?

java - 如何在没有确认的情况下消费 100 条消息,然后工作然后确认它们?

java - 使用 Spring Cloud Stream 3.0+ 从 RabbitMQ 队列消费消息

java - @RabbitListener 以 "stopped"模式开始绑定(bind)到扇出交换

java - 如何在 spring boot 应用程序中使用 spring-rabbit 处理 JSON 消息?

java - 如何自动将数据从 amazon S3 复制到 redshift?

java - 列出一个包的所有子包

kubernetes - 如何在 kubernetes 上安装 rabbitmq 插件?

java - 使用基于光标位置的函数调用 - Android

java - 使用什么来代替 JFace Actions(因为它们已被弃用)?