ActiveMQ多次处理消息

时间:2019-03-05 10:43:59

标签: java spring-boot jms activemq

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

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

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

1 个答案:

答案 0 :(得分:0)

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