Spring Batch:在较小的块中重试块与单项处理

时间:2016-02-15 23:33:12

标签: java spring spring-batch spring-retry retrypolicy

我有一个使用Spring Batch 3.0.6的应用程序。 Spring Batch作业使用块处理。提交间隔设置为100,重试限制设置为5.

当达到提交间隔时,writer将数据块(100条记录)写入另一个应用程序(通过TCP)。如果其中一个记录是错误的(无论出于什么原因它会导致异常),那么Spring Batch会尝试将块写入5次(重试限制)并且每次都失败(如预期的那样)。

然后,Spring Batch尝试通过一次重试(即提交间隔= 1)来找出块中100个记录中的哪一个失败。这似乎是重试的默认行为。

通过一次重试10条记录并逐步缩小重试大小直到找到违规记录,有没有办法提高效率。这样,如果第95条记录不好,那么我们发现它比从记录1开始一次检查一条记录要快。

我在2011年发现这篇文章:

Spring Batch: Commit-Interval not honored after roll back during write

是否有办法让SB先尝试较小的块来缩小坏记录的位置。较小的块大小(例如,10个项目)可以是可选的用户可配置项目,之后SB可以一次尝试一个项目来查找坏记录。

0 个答案:

没有答案