首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apache Camel -如何在默认处理程序之前处理异常?

Apache Camel -如何在默认处理程序之前处理异常?
EN

Stack Overflow用户
提问于 2012-12-10 22:03:50
回答 1查看 1.2K关注 0票数 0

我有一个简单的Camel设置:

代码语言:javascript
运行
复制
            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,而不删除重试策略?

EN

回答 1

Stack Overflow用户

发布于 2012-12-12 12:30:40

您是否可以从FooException中删除重新交付,然后让自定义bean运行其处理,并在处理后重新抛出异常?那么一个单独的异常处理程序就可以进行重新传递了吗?

谢谢,Yogesh

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13802498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档