我使用 Spring amqp 1.1 版本作为我的 java 客户端。
我有一个大约有 2000 条消息的队列。我想要一个服务来检查这个队列大小,如果它是空的,它会发出一条消息说“所有项目已处理”。
我不知道如何获取当前队列大小?请帮忙
我用谷歌搜索并发现了早期版本 1.0 中存在的类“RabbitBrokerAdmin”。
我认为现在 1.1 中已经不存在了。
有获取当前队列大小的指针吗?
所以我知道这有点晚了,已经找到了解决方案,但这是查看队列中消息计数的另一种方法
此解决方案假设您正在使用 springrabbitmq 框架,并在应用程序配置中定义了队列,并定义了以下标签
<rabbit:queue>
<rabbit:admin>
java类:
public class QueueStatsProcessor {
@Autowired
private RabbitAdmin admin;
@Autowired
private List<Queue> rabbitQueues;
public void getCounts(){
Properties props;
Integer messageCount;
for(Queue queue : rabbitQueues){
props = admin.getQueueProperties(queue.getName());
messageCount = Integer.parseInt(props.get("QUEUE_MESSAGE_COUNT").toString());
System.out.println(queue.getName() + " has " + messageCount + " messages");
}
}
}
您还可以使用此解决方案来读取附加到队列的当前消费者http://docs.spring.io/spring-amqp/docs/1.2.1.RELEASE/api/org/springframework/amqp/rabbit/core/RabbitAdmin.html#getQueueProperties(java.lang.String) http://docs.spring.io/spring-amqp/docs/1.2.1.RELEASE/api/org/springframework/amqp/rabbit/core/RabbitAdmin.html#getQueueProperties(java.lang.String)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)