gpt4 book ai didi

go - 在 nack 卡住我的应用程序之前删除队列

转载 作者:IT王子 更新时间:2023-10-29 02:05:06 25 4
gpt4 key购买 nike

我是 rabbitmq 的新手,我想知道在我可以确认该队列上的交付之前删除队列时处理错误的最佳方法是什么。

if err := handle(); err != nil {
delivery.Nack(false, true)
} else {
delivery.Ack(false)
}

此代码的问题是我们的队列是基于我们的调度程序外部的协调器创建/删除的,因此当交付 Nack 并且队列被删除时系统挂起,因为它一直尝试重新排队交付。

为了解决这个问题,我可以检查是否:

delivery.Nack(false, true)

返回一个错误,我可以在那里处理它。但是,如果 Nack 方法返回错误,放弃此交付的最佳方法是什么?

注意:我使用的是 https://github.com/streadway/amqp

最佳答案

The problem with this code is that our queues are created/deleted based on a coordinator external to our dispatcher,

这就是问题所在。我想问你为什么要这样做,而不是让消费者定义它需要的队列和绑定(bind)?

除非能够质疑/更改它,否则围绕 deliver.Nack 的错误处理程序可能是您的最佳选择。但我认为对于由更大的设计问题引起的问题,这是一个令人不快的解决方法

关于go - 在 nack 卡住我的应用程序之前删除队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32228910/

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