我有一个简单的Camel设置:
final MyErrorProcessor myErrorProcessor = new MyErrorProcessor(10);
onException(FooException.class)
.bean(myErrorProcessor, "process")
.redeliveryDelay(TimeUnit.SECONDS.toMillis(5))
.maximumRedeliveries(10);
from(MIDDLE_QUEUE)
.bean(ProcessorBean.class, "process")
.to(resultEndpoint)
.end();
其中myErrorProcessor只是一个我想在得到异常后立即调用的bean。
问题是,我只在所有retryes都失败时才执行myErrorProcessor.process(),但我希望只计算异常的数量,即使它们重试成功。
我知道有.onRedelivery(),但它也有类似的问题:它只在redeliveryDelay之后调用我的bean,而不是在抛出异常的时候。
所以,我的问题是:当Camel捕获到异常时,有没有办法通知我的自定义bean,而不删除重试策略?
发布于 2012-12-12 12:30:40
您是否可以从FooException中删除重新交付,然后让自定义bean运行其处理,并在处理后重新抛出异常?那么一个单独的异常处理程序就可以进行重新传递了吗?
谢谢,Yogesh
https://stackoverflow.com/questions/13802498
复制相似问题