使用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;
        }

最佳答案

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

07-26 00:05