我在spring boot应用程序中使用rabbitmq的方式如下:
发件人:
rabbitTemplate.convertAndSend("exchange", "routingKey", "Message Text");
侦听器:
@RabbitListener(queues = "queueName")
public void receive(String message) {
System.out.println("start");
//send an http request that takes for example 4 seconds
System.out.println("end");
}
使用上述代码,当应用程序执行发送器部分时, receive
方法已调用。我的问题是 receive
方法正在处理一条消息,如果发送方部分将另一条消息放入队列,则该方法不处理新消息,因此第二条消息 start
文字要等到 end
上一条消息的字。换句话说,我想知道,一个消息侦听器如何一次处理多个消息,我不知道问题出在哪里。
1条答案
按热度按时间dy2hfwbg1#
从您所说的问题来看,您的侦听器似乎是为单线程配置的。请参阅此处和此处的容器侦听器配置文档,特别是并发设置。并发设置控制有多少线程同时处理队列中的消息。