rabbitMq实现已读消息和未读消息的查询
程序员文章站
2022-03-05 19:19:07
...
//进行链接常见
// 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());
}
上一篇: 几种计算机语言的评价(修订版)
下一篇: OpenSSL命令之算法类大全