作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有兴趣在 Camel 中使用 RedeliveryPolicy 在返回特定异常时重试将消息重新传递到端点。但是我似乎找不到很多关于如何配置它的例子。
目前我正在尝试:
from("direct:entry")
.onException(ResourceNotFoundException.class)
.redeliveryPolicy(new RedeliveryPolicy().delayPattern("delayPattern=0:" + aocmDelay + ",10:1000;15:2000:19:10000"))
.handled(true)
.end()
.to("direct:destination");
我的目标端点因 ResourceNotFoundException 而失败,但未调用 onException 处理并且重新传送未生效。对我做错了什么有什么想法吗?
最佳答案
您需要设置重新传送策略的单个属性。
from("direct:entry")
.onException(ResourceNotFoundException.class)
.maximumRedeliveries(20)
.delayPattern("1:2000;10:1000;15:2000;19:10000")
.handled(true)
.end()
.to("direct:destination");
补充说明:
delayPattern=0:"+ aocmDelay + ",10:1000;15:2000:19:10000
__________________________________;______________;________
1
开始,如果您定义 0:1000;1:5000
,则第一次重新传递会延迟五秒而不是一秒关于java - 如何在 Camel 中延迟重试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34869888/
我是一名优秀的程序员,十分优秀!