骆驼 useExponentialBackoff 无法正常工作
Camel useExponentialBackoff not working correctly
我已经设置了一个带有错误处理程序的骆驼路由和配置如下的重新传送策略
<errorHandler id="apiRetryHandler" type="DefaultErrorHandler">
<redeliveryPolicy maximumRedeliveries="5" redeliveryDelay="30000"
backOffMultiplier="5" useExponentialBackOff="true"
useCollisionAvoidance="true"/><errorHandler>
我期待以下结果
- 消息 1 -> 实际消息
- 消息 2 -> 第一次重试 = 30 秒
- 消息 3 -> 第二次重试(30 [redeliveryDelay] x 5 [backoffMultipler])
= 2.5 分钟
- 消息 4 -> 第 3 次重试(2.5 分钟(之前)x 5 [backoffMultipler])= 12.5 分钟
第一次失败时,当我从系统收到异常时,处理程序按以下顺序启动
- 第一次重试 - 30 秒
- 第二次重试 - 1 分钟
- 第三次重试 - 1 分钟
...
- 第 6 次重试 - 1 分钟
请指教我这里做错了什么。
重新传送的最大延迟为 60 秒 [1]。您需要将其设置为更高的值。也不建议使用长延迟值,例如 12.5 分钟是一个非常长的时间。
<errorHandler id="apiRetryHandler" type="DefaultErrorHandler">
<redeliveryPolicy maximumRedeliveryDelay="30min" maximumRedeliveries="5" redeliveryDelay="30sec"
backOffMultiplier="5" useExponentialBackOff="true"
useCollisionAvoidance="true"/><errorHandler>
我已经设置了一个带有错误处理程序的骆驼路由和配置如下的重新传送策略
<errorHandler id="apiRetryHandler" type="DefaultErrorHandler">
<redeliveryPolicy maximumRedeliveries="5" redeliveryDelay="30000"
backOffMultiplier="5" useExponentialBackOff="true"
useCollisionAvoidance="true"/><errorHandler>
我期待以下结果
- 消息 1 -> 实际消息
- 消息 2 -> 第一次重试 = 30 秒
- 消息 3 -> 第二次重试(30 [redeliveryDelay] x 5 [backoffMultipler]) = 2.5 分钟
- 消息 4 -> 第 3 次重试(2.5 分钟(之前)x 5 [backoffMultipler])= 12.5 分钟
第一次失败时,当我从系统收到异常时,处理程序按以下顺序启动
- 第一次重试 - 30 秒
- 第二次重试 - 1 分钟
- 第三次重试 - 1 分钟 ...
- 第 6 次重试 - 1 分钟
请指教我这里做错了什么。
重新传送的最大延迟为 60 秒 [1]。您需要将其设置为更高的值。也不建议使用长延迟值,例如 12.5 分钟是一个非常长的时间。
<errorHandler id="apiRetryHandler" type="DefaultErrorHandler">
<redeliveryPolicy maximumRedeliveryDelay="30min" maximumRedeliveries="5" redeliveryDelay="30sec"
backOffMultiplier="5" useExponentialBackOff="true"
useCollisionAvoidance="true"/><errorHandler>