Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何在读取RabbitMQ队列时检测错误_Go_Error Handling_Rabbitmq - Fatal编程技术网

Go 如何在读取RabbitMQ队列时检测错误

Go 如何在读取RabbitMQ队列时检测错误,go,error-handling,rabbitmq,Go,Error Handling,Rabbitmq,我正在从RabbitMQ队列读取如下消息: messages, err := channel.Consume( queue, // queue queue, // consumer - same as queue false, // auto-ack false, // exclusive false, // no-local false, // no-wait nil) // args if err != nil {

我正在从RabbitMQ队列读取如下消息:

messages, err := channel.Consume(
    queue,  // queue
    queue,  // consumer - same as queue
    false,  // auto-ack
    false,  // exclusive
    false,  // no-local
    false,  // no-wait
    nil)    // args
if err != nil {
    // handle error
}

loop:   
for {
    select {
    case cmd := <-cmdChannel:
        if cmd == cmdStop {
            break loop
        }
    case message := <-messages:
        go process(message)
    }
}
消息,错误:=channel.Consume(
队列,//队列
队列,//使用者-与队列相同
false,//自动确认
false,//独占
false,//没有本地
false,//没有等待
nil)//args
如果出错!=零{
//处理错误
}
循环:
为了{
挑选{

case cmd:=假设您使用的是
streadway/amqp
,这可能就是您想要的

func(*通道)NotifyClose
func(ch*频道)NotifyClose(c chan*错误)chan*错误

NotifyClose在服务器发送通道时注册侦听器 或连接形式的连接异常。关闭或 Channel.Close方法。将向所有用户广播连接异常 开放通道和所有通道将关闭,其中 例外情况将仅广播到此频道的侦听器

通道关闭时,提供的通道将关闭,并处于关闭状态 优雅关闭,不会发送错误


假设您正在使用
streadway/amqp
,这可能就是您正在寻找的@ttomalak这看起来很好,请给出答案,以便我可以接受。请引用或转述您答案正文中的相关内容。链接可能会随着时间的推移而失效,此时此答案将不再有助于任何人搜索。我如果这一联系失败,就有更大的问题需要担心。