繁体   English   中英

如何重试将Java Spring Flow转换为Spring Integration Work Flow?

[英]How to convert Java Spring Flow to Spring Integration Work Flow with retry?

我在Spring组件类中有一个非常简单的方法

@Service("wsOrderCreationService")
public class WsOrderCreationServiceImpl implements WsOrderCreationService {
...
public void saveLedger(SdiOrderSkuLedger orderSkuLedger)    {
    sdiOrderSkuLedgerService.save(orderSkuLedger);
}

我想将重试应用于此方法,但是我不能使用spring-retry 1.1.12,因为我的核心Spring版本是3.0,而spring-retry的较低版本不允许XML配置。 我们已在此应用程序中成功地将Spring Integration与retry一起使用,因此我正在考虑将此方法转换为SI工作流。 进行此转换的最佳方法是什么?

让我猜想您可以对<service-activator>使用<request-handler-advice-chain>中的RequestHandlerRetryAdvice

另一方面,您可以为某些service-interface构建类似<gateway>东西,并将该接口在某些服务中用作Integration前端。

因此,您需要的是<gateway> ,它使用RequestHandlerRetryAdvice将消息发送到<service-activator> ,以获取某些需要重试逻辑的服务方法。

这就是如何回答您的特定问题。

另一方面,Spring Retry框架不是为XML配置设计的,因为它对于常规的<bean>定义来说已经足够简单了。 您应该只通过标准Spring AOP Framework配置RetryOperationsInterceptor (及其依赖项)。

从那里开始,您不必为了简单地重试一项服务而引入Spring Integration层。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM