Spring интеграции DSL обработки ошибок и продолжить - PullRequest
0 голосов
/ 03 июля 2019

В моем приложении весенней интеграции у меня есть метод шлюза Async, который указывает errorChannel.

При ошибке - я хочу обработать ошибку (что я могу успешно сделать), зарегистрировав поток интеграции в errorChannel,

После того, как ошибка обработана и обработана, условно я могу отправить ее на другой канал для дальнейшей обработки и в конце ответить обратно шлюзу.Каков наилучший способ добиться этого?

Пример ->

@MessagingGateway(errorChannel = "errorChannel")
public interface OrchestrationServicesGateway {
   @Gateway(requestChannel = "payment.input", replyChannel = 
   "payment.output")
   Future<JobData> processPayment(PaymentRequest request);
}

Поток интеграции имеет этап A-> B-> C-> D-> end

Теперь, если на шаге B выдается ошибка, я хочу обработать обобщенную функцию и, основываясь на некоторых правилах, мы могли бы перейти к C или Перейти к D / end.

Как мне этого добиться?

1 Ответ

0 голосов
/ 03 июля 2019

Я бы посоветовал взглянуть на ExpressionEvaluatingRequestHandlerAdvice: https://docs.spring.io/spring-integration/docs/5.1.6.RELEASE/reference/html/#expression-advice. Добавить его для всех ваших индивидуальных конечных точек и иметь на failureChannel некоторую логику маршрутизатора, чтобы определить, куда отправлять сообщение компенсации дальше.

Таким образом, у вас не будет единой точки обработки ошибок со сложной логикой, чтобы определить, где сообщение было ошибочным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...