我正在寻找骆驼路线上的简单延误重试交货。我已配置
from("rss:" + rssUrl + "?splitEntries=false&delay=15s").bean(rssHandler) .onException(ConnectException.class).redeliveryDelay(10000).backOffMultiplier(2).maximumRedeliveries(5);
在我的路线上,但是在看到它不起作用后,我得知必须配置一个死信通道,否则该配置基本上会被忽略。
所以我添加了:
errorHandler(deadLetterChannel("log:error"));
但是,对于我的Java Camel配置,我正在寻找最简单的死信通道实现,该实现不需要我输入ActiveMQ或类似的东西,我会对基于内存的简单重试机制感到满意没有任何保证。不幸的是,到目前为止我还没有找到任何东西,所以如果有人可以帮助我,请访问这里,提出一种简单的方法来使用最少的死信通道组件配置重试。
答案 0 :(得分:0)
使用seda组件而不是log组件可以为您提供内存中的死信目的地。例如。将“ log”替换为“ seda”。但是,请记住,一旦重新交付用尽,该消息将驻留在此队列中,因此将存在于内存中,除非有进程将其取消排队或清除早于为此队列配置的指定时间段的消息。>
https://camel.apache.org/dead-letter-channel.html
您还可以,只需配置您的配置以将异常标记为已处理,并在达到最大重新发送次数后就放弃该消息