gpt4 book ai didi

c# - RabbitMQ 基本恢复不起作用

转载 作者:行者123 更新时间:2023-11-30 14:17:11 24 4
gpt4 key购买 nike

我们有一个持久的 RabbitMQ 队列。当消费者从队列中获取项目时,它会处理它然后确认它。如果消费者未能处理该项目,它会打印一条错误消息,希望有人解决该问题并停止。没有发送确认。当消费者重新启动时,它收到的是队列中的下一个项目,而不是没有确认的项目。 Basic.Recover() 没有帮助(使用 .NET 客户端)。任何关于如何让它作为队列工作的想法 - 如果它没有被确认,总是得到第一个项目。

最佳答案

消息可以通过两种方式消费 noAck=false 或 noAck=true

noAck 是 Model.BasicConsume 和 Model.BasicGet 的参数

当 noAck 设置为 true 时,消息在传递后会自动从队列中删除。如果 noAsk 设置为 false,只有在调用 basicAck 时才会删除消息。

如果 noAck=false 并且您不调用 basicAck 消息将保留,但您不会收到其他消费者,直到您重新启动应用程序(或关闭首先使用它的连接)。如果您调用 BasicReject,消息将重新发送给订阅者。

希望对您有所帮助。

关于c# - RabbitMQ 基本恢复不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6340947/

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