Camel useExponentialBackoff无法正常工作

时间:2016-03-11 14:20:05

标签: apache-camel jbossfuse fuseesb

我已经设置了一个带有errorHandler和重新传递策略的驼峰路由,其配置如下

<errorHandler id="apiRetryHandler" type="DefaultErrorHandler">
<redeliveryPolicy maximumRedeliveries="5" redeliveryDelay="30000"
backOffMultiplier="5" useExponentialBackOff="true"
useCollisionAvoidance="true"/><errorHandler>

我期待以下结果

  • 消息1 - &gt;实际消息
  • 消息2 - &gt;第一次重试= 30秒
  • 消息3 - &gt;第二次重试(30 [redeliveryDelay] x 5 [backoffMultipler]) = 2.5分钟
  • 消息4 - &gt;第3次重试(2.5分钟(前一个)x 5 [后退多个])= 12.5分钟

在第一次失败时,当我从系统收到异常时,处理程序按以下顺序启动

  • 第一次重试 - 30秒
  • 第二次重试 - 1分钟
  • 第3次重试 - 1分钟 ...
  • 第6次重试 - 1分钟

请在这里建议我做错了什么。

1 个答案:

答案 0 :(得分:2)

最大重新传送延迟为60秒[1]。您需要将其设置为更高的值。此外,不建议使用长延迟值,例如12.5分钟是很长时间。

<errorHandler id="apiRetryHandler" type="DefaultErrorHandler">
<redeliveryPolicy maximumRedeliveryDelay="30min" maximumRedeliveries="5" redeliveryDelay="30sec"
backOffMultiplier="5" useExponentialBackOff="true"
useCollisionAvoidance="true"/><errorHandler>