【发布时间】:2017-11-25 09:59:41
【问题描述】:
我正在阅读RabbitMQ tutorial 并看到以下代码:
forever := make(chan bool)
go func() {
for d := range msgs {
log.Printf("Received a message: %s", d.Body)
}
}()
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
<-forever
我感兴趣的是for d := range msgs。这个 for 循环如何处理事件?例如。在应用程序启动时,msgs 队列缓冲区中只有一条消息。
问题:
- 它将如何处理下一个事件?
- 在playing around 使用此代码后,我发现它可能会卡在
log.Printf行并且不再处理事件。可能是什么原因?
【问题讨论】:
标签: for-loop go rabbitmq message-queue event-driven