以编程方式为块配置容错的工作方式如下:
stepBuilders.get("step")
.<Partner,Partner>chunk(1)
.reader(reader())
.processor(processor())
.writer(writer())
.listener(logProcessListener())
.faultTolerant()
.skipLimit(10)
.skip(UnknownGenderException.class)
.listener(logSkipListener())
.build();
诀窍是,通过添加“块”,链切换到提供“容错”方法的 SimpleStepBuilder。
我的问题是,如果您只有一个 tasklet(没有读取器、处理器、写入器),该怎么做?
定义 tasklet 的工作方式如下:
stepBuilders.get("step")
.tasklet(tasklet())
.build();
“tasklet”的使用切换到不提供“faultTolerant”方法的 TaskletStepBuilder。因此,我看不出如何定义诸如 skipLimit 之类的属性。
有任何想法吗?
最佳答案
一个 Tasklet
没有要跳过的“项目”的概念,因此容错仅对面向块的步骤有意义。我建议您在原始版本中使用 Spring Retry(1.1.0.RELEASE 现在已经发布,并且您有一些流畅的构建器选项和 @Retryable
注释)。
关于spring - 如何以编程方式为spring tasklet(不是 block )配置容错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23523130/