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。
我该如何实现?
我建议看一下 ExpressionEvaluatingRequestHandlerAdvice
:https://docs.spring.io/spring-integration/docs/5.1.6.RELEASE/reference/html/#expression-advice。为所有个人端点添加它,并在 failureChannel
一些路由器逻辑上确定进一步发送补偿消息的位置。
这样您就不会有一个错误处理点和硬逻辑来确定消息失败的位置。
在我的 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。
我该如何实现?
我建议看一下 ExpressionEvaluatingRequestHandlerAdvice
:https://docs.spring.io/spring-integration/docs/5.1.6.RELEASE/reference/html/#expression-advice。为所有个人端点添加它,并在 failureChannel
一些路由器逻辑上确定进一步发送补偿消息的位置。
这样您就不会有一个错误处理点和硬逻辑来确定消息失败的位置。