0

I am using MessageListener to read messages from the specified queue and want to perform processing once i got message on queue.

Here is my code

@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 
    }
}

My processing time is more for one message and when one message process is going on I cant process another message which is coming on the queue.

so, cant I process multiple messages in parallel

Pushparaj Dhole
  • 63
  • 1
  • 11

1 Answers1

0

Add

messageListenerContainer.setConcurrentConsumers(5);

(or whatever concurrency you need).

See the documentation for other container properties.

Gary Russell
  • 166,535
  • 14
  • 146
  • 179