如何在camel中的onRedelivery之前执行onException块中的操作?

问题描述 投票:0回答:1

我在骆驼路线中有一个 onException 块。看起来像这样:

...
.onException(SomeException.class)
.maximumRedeliveries(3)
.redeliveryDelay(5000)
.onRedelivery(e -> {log()})
.retryAttemptedLogLevel(WARN)
.process(e -> {log()})
.handled(true)
...

问题在于重新交付是在流程之前执行的。 我想在重试之前做一些事情。这可能吗?

java apache-camel spring-camel
1个回答
0
投票

根据注释中的要求,在异常后立即执行操作。您可以使用 .onExceptionOccurred() 处理器,它在异常后立即执行,而 onRedelivery() 在重试之前执行。您可以参考docs了解更多信息。

...
.onException(SomeException.class)
.onExceptionOccurred(e -> {log()})
.maximumRedeliveries(3)
.redeliveryDelay(5000)
.onRedelivery(e -> {log()})
.retryAttemptedLogLevel(WARN)
.process(e -> {log()})
.handled(true);
...
© www.soinside.com 2019 - 2024. All rights reserved.