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());

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM