gpt4 book ai didi

javascript - 如何在发布新消息之前删除rabbitmq中的特定消息?

转载 作者:行者123 更新时间:2023-12-01 15:16:28 26 4
gpt4 key购买 nike

我有一个将数据推送到队列中的订阅者。现在消息看起来像这样

{
"Content": {
"_id" ""5ceya67bbsbag3",
"dataset": {
"upper": {},
"lower": {}

}
}
现在可以推送具有相同内容 ID 的新消息,但数据会有所不同。因此,我想删除具有相同 id 的旧消息或替换那些 id 相同的消息并仅保留最新消息。
我在rabbitmq中没有找到直接的解决方案。请指导我如何做到这一点?
我已经浏览了一些帖子。
Post 1
Post 2

最佳答案

RabbitMQ(或者更确切地说是 AMQP 协议(protocol))无法轻松解决您想要实现的目标。
RabbitMQ 队列很简单 FIFO堆栈,并且除了在顶部发布和从底部使用之外,不提供任何访问元素的方式。
因此,在不依赖其他服务的情况下“更新”现有消息的唯一方法是获取所有消息,直到找到您感兴趣的消息,丢弃它,然后将新消息与您获取的其他消​​息一起发布和它一起。
总体而言,recommendation在消息复制方面使用 RabbitMQ 是为了使其消费幂等。换句话说,被认为相同的 2 条消息的消费应该导致相同的结果。
实现幂等性的一种方法是依靠二级缓存来存储消息标识符及其有效性。一旦消费者从 RabbitMQ 获取新消息,它将检查缓存以查看它是否是有效消息并采取相应措施。

关于javascript - 如何在发布新消息之前删除rabbitmq中的特定消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62589626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com