使用JmsTemplate获取activemq队列列表时,报告的队列数量发生了变化
private Set<String> queues = new HashSet<>();
try(ActiveMQConnection connection = (ActiveMQConnection)
jmsTemplate.getConnectionFactory().createConnection()){
connection.start();
for(ActiveMQQueue queue : connection.getDestinationSource().getQueues()){
queues.add(queue.getQueueName());
}
queues.remove(defaultReplyToQueue);
log.info("findAllQueues found {}", queues.size());
return queues;
}
答案 0 :(得分:0)
这很难给出有限的详细信息,但是我想问题可能归结于在目标源中填充队列的方式。当代理枚举现有队列时,它们以异步方式到达。这意味着仅打开连接并立即请求所有队列将可能报告随机结果,因为并非所有结果都来自代理。