我正在使用ActiveMQ队列并通过Camel + JMS Transaction消费它。在系统故障时,使用" DeadLetterChannel"激活重试过程。吼叫。
<camel:errorHandler id="deadLetterErrorHandler" type="DeadLetterChannel" deadLetterUri="activemq:ActiveMQ.DLQ">
<!-- delayPattern = 5s;1m;5m;1h;5h;10h;20h = 36h -->
<camel:redeliveryPolicy maximumRedeliveries="7" delayPattern="1:5000;2:60000;3:300000;4:3600000;5:18000000;6:36000000;7:72000000" />
</camel:errorHandler>
在我调查的测试中,重试过程不考虑队列上的原始消息状态(例如:由于事件而删除原始消息)。即使经纪人下台,重试过程仍在继续。
一般情况下,原始邮件不会更改,但可能会因特殊情况而更改。在这种情况下,我是否可以检查原始邮件状态(如可用性)并停止重试过程?有没有直接的选择呢?
我提到了一些文档,但我找不到解决方案。