所以我目前有一个Spring批处理进程,它为一些自定义异常类型实现了一个复合跳过策略。所以我现在遇到的问题是,当我得到异常时,我并不总是只想跳过。
对于某些与数据库相关的异常,我想重试几次然后如果仍然失败则继续并跳过记录。不幸的是,我没有办法做到这一点。
我尝试实现自己的RetryPolicy但是canRetry的唯一选项是true或false(而不是false我想抛出我的可跳过异常)。
所以我在这里遗漏了一些东西,或者这不是春季批次的功能吗?
由于
答案 0 :(得分:0)
从StepBuilderFactory
,您可以这样做:
stepBuilder.reader(reader).writer(writer).faultTolerant().retryPolicy(retryPolicy).skipPolicy(skipPolicy).
是的,它正在发挥作用。我遇到了同样的问题,经过测试后,我发现我的项目会在RetryPolicy
之后重试,然后会在SkipPolicy
之后跳过。