rabbitMq实现已读消息和未读消息的查询
//进行链接常见 // xfRabbitTemplate 自定义的链接创建类 Channel channel = xfRabbitTemplate.getChannel(); //消费者定义 channel.queueDeclare(Queue.TEXT_MESSAGE, true, false, false, null); //从队列中检索消息 GetResponse result = channel.basicGet(Queue.TEXT_MESSAGE, true); //获取当前队列中消息的消息体 byte[] body = result.getBody(); //获取当前消息数据个数 result.getMessageCount(); //获取当前队列要交给消费者的消息 channel.messageCount(Queue.TEXT_MESSAGE); //进行队列消息和传递消息进行 if(body.equals(message)) { //进行消费标记 channel.basicAck(result.getEnvelope().getDeliveryTag(), false); result.getEnvelope().getDeliveryTag(); //创建消费者 System.out.println("== body " + body + "msdg = " + message); } /** * 获取已经被ack之后的消息(已读): * autoAck 默认为 false 没有给消费者查看,消费者查询则为true * 当前查询没有被阅读的消息 */ GetResponse outChan = channel.basicGet(Queue.TEXT_MESSAGE, false); if(outChan != null) { infos.add(outChan.getBody().toString());
所有内容皆为个人总结或转载别人的文章,只为学习技术。 若您觉得文章有用,欢迎点赞分享! 若无意对您的文章造成侵权,请您留言,博主看到后会及时处理,谢谢。