【发布时间】:2019-04-25 00:54:05
【问题描述】:
我正在从 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)
}
}
从messages读取可能会失败,比如网络错误,或者RabbitMQ的通道由于错误而失效。如何检测此类错误并获取相关错误信息?
【问题讨论】:
-
相关,错误处理细节和
NotifyClose:How to check if the channel is still working in streadway/amqp RabbitMQ client?
标签: go error-handling rabbitmq