ActiveMQ多次处理消息

问题描述 投票:0回答:1

我想在ActiveMQ中设置重新传递策略。我已经设置了3次重试次数,之后该消息应该被发送到死信队列。但是我注意到,虽然处理消息的3次尝试(发生异常时)被多次处理。为什么?

  1. 第一次处理 - 消息被处理13次(1次常规和12次重新处理)次数(每次都发生异常,因此最终将消息发送回队列 - 在第13次结束时)
  2. 第二次处理 - 消息被处理5次
  3. 第三次 - 消息被重新处理4次

为什么这个额外的再处理?我认为当消息被发送回队列时,我的监听器应该收到此消息并再次尝试仅处理此消息一次。哪个参数负责此重新处理?

java spring-boot jms activemq
1个回答
0
投票

您很可能需要将jms.redeliveryPolicy.maximumRedeliveries=0添加到连接URI。默认情况下,ActiveMQ客户端在客户端重试。这一切都很好,但是如果你已经配置代理来处理重试,你通常不希望客户端也这样做。只需添加选项即可。有关选项本身,请参阅http://activemq.apache.org/redelivery-policy.html

© www.soinside.com 2019 - 2024. All rights reserved.