美文网首页
"channel is already closed due t

"channel is already closed due t

作者: momo_vivi | 来源:发表于2018-10-24 16:09 被阅读0次

 今天在测试自己写的Rabbitmq的demo的时候出现了这么一个问题:

系统异常

其中显示问题原因在于channel已经被关闭导致,抛出异常。但是信息同时显示reply-code=200, reply-text=OK,这说明生产者一端的消息已经成功被消费者接收,初步判断异常与生产者一端无关。后来我检查了代码,发现了这么一个问题,

附上我的代码:

Producer(这段代码是在《Rabbit MQ实战指南》的基础上修改的) Consumer

从代码中可以看到,在消费者一端线程等待了一秒之后会关闭channel和connection,而此时还有消息没有被消费完,导致程序发生异常。解决方法是将代码改为TimeUnit.SECONDS.sleep(1000),让消费者一端有足够时间处理消息。

结果如图所示

程序不再发生异常

相关文章

网友评论

      本文标题:"channel is already closed due t

      本文链接:https://www.haomeiwen.com/subject/qihxtqtx.html