spring 集成 dsl 错误处理并继续

spring integration dsl error handling and continue

在我的 spring 集成应用程序中,我有异步网关方法执行指定的 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。

我该如何实现?

我建议看一下 ExpressionEvaluatingRequestHandlerAdvicehttps://docs.spring.io/spring-integration/docs/5.1.6.RELEASE/reference/html/#expression-advice。为所有个人端点添加它,并在 failureChannel 一些路由器逻辑上确定进一步发送补偿消息的位置。

这样您就不会有一个错误处理点和硬逻辑来确定消息失败的位置。