0

私は単純な 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 に通知する方法はありますか?

4

1 に答える 1

1

FooException から再配信を削除してから、カスタム Bean にその処理を実行させ、処理後に例外を再スローすることはできますか? 次に、別の例外ハンドルが再配信を行うことができますか?

ありがとう、ヨゲシュ

于 2012-12-12T04:30:40.233 に答える