使用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;
}
最佳答案
给出的详细信息很难完全回答,但我想问题可能归结于在目标源中填充队列的方式。当代理枚举现有队列时,它们以异步方式到达。这意味着仅打开一个连接并立即请求所有队列可能会报告随机结果,因为并非所有结果都来自代理。