每个队列的ActiveMQ重新传递时间?

时间:2015-01-05 16:13:21

标签: activemq

我有ActiveMQ 5.10.0并且配置接收器和代理相同: TCP://本地主机:61666 jms.prefetchPolicy.queuePrefetch = 0&安培; jms.redeliveryPolicy.maximumRedeliveries = 5&安培; jms.redeliveryPolicy.initialRedeliveryDelay = 5000&安培; jms.redeliveryPolicy.useExponentialBackOff =真安培; jms.redeliveryPolicy.backOffMultiplier = 2.0&安培; JMS .nonBlockingRedelivery =真安培; jms.redeliveryPolicy.maximumRedeliveryDelay = 180

如果队列中只有一条引发异常的消息,则会在5s,10,20,40和80之后按预期重新传递。然后将其放在deadletterque上。

当在队列上放置多条消息时,时间加倍,不是每条消息都加倍,而是排队。我希望最长时间是180秒,但是在消息2之后170秒重试消息1,并且在340s之后重试下一条消息。下一条消息是在680年代之后...... 我在ActiveMQ中发现了错误或我的配置错误了吗?

1 个答案:

答案 0 :(得分:0)

要保留订单,将重试该消息并阻止该消费者。所以,如果你把两个"坏"队列中的消息,第一个将重试180秒,然后第二个将重试180秒,依此类推。这是保持消息顺序的预期行为。