无论指定的并发性如何,如果队列为非空但未接收到消息,RabbitMQ侦听器每个使用者仅启动一个线程

时间:2019-07-02 13:27:07

标签: spring-amqp spring-rabbit

我正在使用带有依赖项的Spring Boot 2.1.3

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

我在项目中配置了一个Rabbit用户,并尝试通过application.properties设置并发性:

spring.rabbitmq.listener.simple.concurrency = 4

并通过@RabbitListener批注的并发属性。

在两种情况下,我都看到完全相同的行为(我在Windows上运行Spring Boot应用程序):如果正在侦听的队列已经包含消息,但是当前未接收到任何消息,则只有一个线程开始处理来自队列。

如果然后我将一些新消息发送到队列,则实际上确实开始了其他线程来处理消息(因此,按照我的指定,它们的总数为4)。

是否要执行其他一些配置,以开始按指定的线程数处理队列中已经没有接收消息的消息?

0 个答案:

没有答案