我在骆驼路线中有一个 onException 块。看起来像这样:
...
.onException(SomeException.class)
.maximumRedeliveries(3)
.redeliveryDelay(5000)
.onRedelivery(e -> {log()})
.retryAttemptedLogLevel(WARN)
.process(e -> {log()})
.handled(true)
...
问题在于重新交付是在流程之前执行的。 我想在重试之前做一些事情。这可能吗?
根据注释中的要求,在异常后立即执行操作。您可以使用 .onExceptionOccurred() 处理器,它在异常后立即执行,而 onRedelivery() 在重试之前执行。您可以参考docs了解更多信息。
...
.onException(SomeException.class)
.onExceptionOccurred(e -> {log()})
.maximumRedeliveries(3)
.redeliveryDelay(5000)
.onRedelivery(e -> {log()})
.retryAttemptedLogLevel(WARN)
.process(e -> {log()})
.handled(true);
...