Перехватчик верблюдов перед каждым компонентом в конвейере

#java #spring #apache-camel

#java #весна #apache-camel

Вопрос:

У меня много процессоров, связанных цепочкой один за другим

    from(....)
    .bean(Processor1.class)
    .bean(Processor2.class)
    .bean(Processor3.class)
   to(...)

 

Я хочу каким-то образом перехватывать поток перед каждым «компонентом».
В то же время я не хочу каким-либо образом редактировать RouteConfig

    from(....)
    .process()
    .bean(Processor1.class)
    .process()
    .bean(Processor2.class)
    .process()
    .bean(Processor3.class)
   to(...)

 

это уродливо и не масштабируемо.
Я уже проверил intercept и interceptFrom, но они не помогают. Они перехватывают только изменения маршрутов, но не процессоры в пределах одного маршрута. У кого-нибудь есть идеи, как это сделать?

Комментарии:

1. Но в документации по перехвату говорится, что обмен перехватывается перед каждым этапом обработки .

2. проблема в том, что на перехватчики влияет механизм повторных попыток, поэтому в основном повторяется логика interceptor step. Мне нужно повторить только логику шага, и к тому времени часть перехвата будет завершена.

3. intercept является ли механизм верблюда для выполнения чего-либо между каждым шагом маршрута. Если вы хотите, чтобы он ничего не делал при повторной доставке, вам нужно будет проверить этот случай в маршруте перехватчика (например, на основе Exchange. REDELIVERY_COUNTER)