java - 在 RabbitMQ 中删除或更新消息
问题描述
我做了一些研究,但找不到任何解决方案来删除或修改队列中已经存在的消息。(RabbitMQ)。
用例:我正在尝试使用 RabbitMQ 中的延迟消息功能(headers.put("x-delay", 5000))发送通知(让我们说 30 分钟后)。我想发送一个可以删除/修改消息内容的事件。有什么方法可以在 RabbitMQ 中做到这一点。
另一种方法是使用数据库和调度程序,如果这是不可能的,我将实施。
提前致谢
解决方案
不太确定您的情况。假设您要删除或修改 RabbitMQ 上的现有消息。
如果您有 FIFO 情况,您可以查看如何选择性地从 AMQP (RabbitMQ) 队列中删除消息?
我可以建议的是,您可以使用插入和删除方法,将具有唯一 ID 的修改后的消息推送到 db/cache 和您的消息队列。并且每当您进行修改或删除时,将其从 db/cache 中删除。当消费者消费消息时,如果它不存在于 db/cache 中,它可以忽略它。
推荐阅读
- java - 从球衣客户响应中读取个人价值
- node.js - 如何使用 oclif 创建 OIDC 登录?
- java - 如何从一个片段移动到另一个片段
- azure - 我可以使用 Azure DevOps Sprint Boards 显示用户故事、任务和错误吗?
- python - 我的窗口正在改变大小,win32com.client 是否影响 tkinter?
- reactjs - 如何从 mongoose 获取数据 API 到 redux?
- android-studio - 我应该如何在另一个异步调用中使用在一个异步调用中返回的 accessToken?
- reactjs - 设置间隔不会更新我的 UI 上的价格(reactjs)
- javascript - 为什么 Postman 返回带有错误的 HTML 而不是数据?
- c# - 即使在 INotifyPropertyChanged - WPF MVVM C# 之后,绑定视图也不会显示