Spring Batch - 如果重试失败,如何重试然后跳过

时间:2017-05-19 19:06:44

标签: java spring spring-batch

所以我目前有一个Spring批处理进程,它为一些自定义异常类型实现了一个复合跳过策略。所以我现在遇到的问题是,当我得到异常时,我并不总是只想跳过。

对于某些与数据库相关的异常,我想重试几次然后如果仍然失败则继续并跳过记录。不幸的是,我没有办法做到这一点。

我尝试实现自己的RetryPolicy但是canRetry的唯一选项是true或false(而不是false我想抛出我的可跳过异常)。

所以我在这里遗漏了一些东西,或者这不是春季批次的功能吗?

由于

1 个答案:

答案 0 :(得分:0)

StepBuilderFactory,您可以这样做:

stepBuilder.reader(reader).writer(writer).faultTolerant().retryPolicy(retryPolicy).skipPolicy(skipPolicy).

是的,它正在发挥作用。我遇到了同样的问题,经过测试后,我发现我的项目会在RetryPolicy之后重试,然后会在SkipPolicy之后跳过。