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