使用jmstemplate时,为什么报告的activemq队列数发生变化?

时间:2019-06-20 19:32:41

标签: java spring-boot activemq spring-jms jmstemplate

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

1 个答案:

答案 0 :(得分:0)

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