当前一个消息处理正在进行时,sp​​ring-amqp onMessage()方法不处理下一条消息

时间:2016-07-27 06:10:24

标签: spring-amqp spring-rabbit spring-rabbitmq

我正在使用MessageListener来读取指定队列中的消息,并希望在队列中收到消息后执行处理。

这是我的代码

@Bean
public MessageListenerContainer messageListenerContainer()
{
    SimpleMessageListenerContainer messageListenerContainer = new SimpleMessageListenerContainer();
    messageListenerContainer.setConnectionFactory(connectionFactory());
    messageListenerContainer.setQueueNames("queue");
    messageListenerContainer.setMessageListener(vceListener());
    return messageListenerContainer;
}

 @Bean
public VListener vceListener()
{
    return new VListener();
}

@Component
public class VListener implements MessageListener
{
    @Override
    public void onMessage(Message message)
    {
      //start process 
    }
}

我对一条消息的处理时间更长,当一个消息进程正在进行时,我无法处理队列中的另一条消息。

所以,我无法并行处理多条消息

1 个答案:

答案 0 :(得分:0)

添加

messageListenerContainer.setConcurrentConsumers(5);

(或者你需要的任何并发)。

请参阅the documentation for other container properties

相关问题