Spring批量容错分区步骤

Spring batch fault tolerant partitioning step

我们已经划分了调用 soap 服务器的步骤,获取一些样式并将这些样式拆分为从属步骤(一种样式是一个从属步骤)。

分区程序中的 Soap 通信可能会失败,我们想尝试 3 次,直到整个分区程序步骤失败。我们正在使用这样的 java 配置:

private Step partitioningStep() {
    return stepBuilderFactory.get("partitionedStyleLoadStep")
            .partitioner("styleItemToArticle", stylePartitioner).step(styleItemToArticleStep())
            .aggregator(styleAggregator)
            .taskExecutor(styleLoadTaskExecutor()).gridSize(gridSize).allowStartIfComplete(true).build();
}

当我们在调用 chunk 后使用 StepBuilderFactory 创建常规步骤时,我们得到 SimpleStepBuilder 具有 faultTolerant() 方法(这允许设置步骤重试策略和其他有用的东西).但是在调用 partitioner() 方法后的分区步骤中返回 PartitionedStepBuilder 没有 faultTolerant() 方法。

知道如何在此设置中轻松实现主分区步骤的重试吗?

目前我们不支持在 Spring 批处理中使 Partitioner#partition 方法容错。这并不意味着您不能使用 Spring Retry 自己添加相同的想法(这是我们在内部使用的相同组件)。您可以在此处的文档中阅读有关 Spring Retry 的更多信息:https://github.com/spring-projects/spring-retry