spring rabbitmq:如果侦听多个队列,优先级如何发挥作用?

spring rabbitmq:如果侦听多个队列,优先级如何发挥作用?,spring,rabbitmq,Spring,Rabbitmq,如果我有以下配置来侦听queue1、queue2、queue3,如果所有队列都有消息,那么消息消耗的顺序是什么?首先消耗所有队列1还是以循环方式 <rabbit:listener-container id="connectListenerContainer" connection-factory="connectionFactory" prefetch="1" concurrency="1"> <rabbit:listener ref="keyRequest

如果我有以下配置来侦听queue1、queue2、queue3,如果所有队列都有消息,那么消息消耗的顺序是什么?首先消耗所有队列1还是以循环方式

  <rabbit:listener-container id="connectListenerContainer" connection-factory="connectionFactory" prefetch="1" concurrency="1">
        <rabbit:listener ref="keyRequestListener" queues="queue1,queue2,queue3" />
    </rabbit:listener-container>

如果您收听多个队列,并且所有队列都有消息,则它们会被一个队列一个队列地使用:
queue2
ins直到
queue1
有消息时才会被使用,依此类推

我们使用此技术实现
优先级
模式,其中
queue1
表示最高优先级

然而,当我们使用
queue3
时,会有一些不希望的副作用,但是
queue1
中会出现一条消息。直到
queue3
不会被耗尽,我们才会看到该消息

要确认源代码块
BlockingQueueConsumer

for (String queueName : queues) {
    if (!this.missingQueues.contains(queueName)) {
        consumeFromQueue(queueName);
    }
}