Метод spring-amqp onMessage () не обрабатывает следующее сообщение, когда выполняется обработка предыдущего сообщения

Я использую 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 
    }
}

Мое время обработки больше для одного сообщения, и когда выполняется одно сообщение, я не могу обработать другое сообщение, которое поступает в очередь.

Итак, я не могу обрабатывать несколько сообщений параллельно


person Pushparaj Dhole    schedule 27.07.2016    source источник


Ответы (1)


Добавлять

messageListenerContainer.setConcurrentConsumers(5);

(или любой другой параллелизм, который вам нужен).

См. документацию по другим свойствам контейнера.

person Gary Russell    schedule 27.07.2016