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
我们已经划分了调用 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