【问题标题】:spring-amqp onMessage() method not processing next message when previous message processing is in progressspring-amqp onMessage() 方法在上一条消息处理正在进行时不处理下一条消息
【发布时间】:2016-11-30 23:52:34
【问题描述】:

我正在使用 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 
    }
}

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

所以,我不能并行处理多条消息

【问题讨论】:

    标签: spring-amqp spring-rabbit


    【解决方案1】:

    添加

    messageListenerContainer.setConcurrentConsumers(5);
    

    (或您需要的任何并发)。

    the documentation for other container properties

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2019-02-09
      相关资源
      最近更新 更多