私は単純な 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 です。
問題は、すべての再試行が失敗した場合にのみ myErrorProcessor.process() が実行されることですが、再試行が成功した場合でも、例外をカウントしたいだけです。
.onRedelivery() があることは知っていますが、同様の問題があります。例外がスローされた時点ではなく、redeliveryDelay の後にのみ Bean を呼び出します。
だから、私の質問は: 再試行ポリシーを削除せずに、Camel によって例外がキャッチされたときにカスタム Bean に通知する方法はありますか?