快捷搜索: 王者荣耀 脱发

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());
		}
经验分享 程序员 微信小程序 职场和发展