请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,您好。在设置basicAck(不论false或true)后,出现异常

com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80);
在注释掉channel.basicAck(DELIVERY_TAG,true);这行代码,就不会抛出异常了

正在回答 回答被采纳积分+3

1回答

大漠风 2018-09-11 16:05:55

这个错误应该是由于重复确认,也就是你确认消息的时候,实际上该消息已经给确认了。

在默认情况下,rabbitMQ的配置,应该是自动确认消息的,也就是AcknowledgeMode.AUTO,这种情况下,只要没有异常,就会自动确认消息。那么这时候,你再调用channel.basicAck(...)就是重复确认了。而且,这个方法里面的第二个参数,true或false是意思是,是否要将这个消息以及他之前的消息都确认。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信