Spring批处理容错分区步骤

Spring批处理容错分区步骤,spring,spring-batch,Spring,Spring Batch,我们已经对调用soap服务器的步骤进行了分区,获取一些样式并在从属步骤中拆分这些样式(一个样式就是一个从属步骤) Soap通信在partitioner中可能会失败,我们想尝试三次,直到整个partitioner步骤失败。我们使用的java配置如下: private Step partitioningStep() { return stepBuilderFactory.get("partitionedStyleLoadStep") .partitioner("sty

我们已经对调用soap服务器的步骤进行了分区,获取一些样式并在从属步骤中拆分这些样式(一个样式就是一个从属步骤)

Soap通信在partitioner中可能会失败,我们想尝试三次,直到整个partitioner步骤失败。我们使用的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
,它具有
faulttolerance()
方法(这允许设置步骤重试策略和其他有用的内容)。但是,在调用
partitioner()
method
PartitionedStepBuilder
之后,返回的分区步骤没有
容错()
方法


如何在这个设置中轻松实现主分区步骤的重试

目前我们不支持在Spring批处理中使
Partitioner#partition
方法容错。这并不意味着您不能使用SpringRetry添加相同的想法(这与我们内部使用的组件相同)。您可以在这里的文档中阅读有关Spring Retry的更多信息:

是的,这是我在挖掘了更多信息之后的想法,所以实际上我已经实现了这样的目标。在每次soap调用中,我都添加了重试模板来尝试几次,并为我提供了相当健壮的通信方式。现在,我正在优雅地处理失败的作业,而不是在超过重试次数时抛出异常,因为我请求降低日志记录量,而分区程序在其中一个步骤失败时抛出异常,但这完全是另一个主题。谢谢你的回答。