Spring batch 如何重新启动定位在正确位置的弹簧批次?

Spring batch 如何重新启动定位在正确位置的弹簧批次?,spring-batch,jobs,restart,chunks,Spring Batch,Jobs,Restart,Chunks,你好, 我有一个spring批处理作业,其中一个步骤是面向块的,迭代大小为1。 它的过程非常简单。 -itemReader读取文件并返回一行 -itemProcess在对象中转换此行 -itemWriter将此对象持久化到数据库中 现在,我已经编写了一个单元测试,其中我让volontary设置了一个不可解析的值,以便在这个块的第二次迭代中失败,所以读取1行并持久化 现在我使用jobId来重新启动它,但是我可以在日志中看到,该步骤从一开始就重新启动,并在第一行的第二次执行 我需要在before步骤

你好, 我有一个spring批处理作业,其中一个步骤是面向块的,迭代大小为1。
它的过程非常简单。
-itemReader读取文件并返回一行
-itemProcess在对象中转换此行
-itemWriter将此对象持久化到数据库中

现在,我已经编写了一个单元测试,其中我让volontary设置了一个不可解析的值,以便在这个块的第二次迭代中失败,所以读取1行并持久化

现在我使用jobId来重新启动它,但是我可以在日志中看到,该步骤从一开始就重新启动,并在第一行的第二次执行

我需要在before步骤中自己跳过它,还是需要设置一个特定的注释以从正确的区块迭代重新启动


您好,Mathieu

您在第一次运行和第二次运行之间是否共享相同的数据源?
FlatFileItemReader
在执行上下文中存储一个名为
read.count
的键,该键在重启场景中用于从最后一个保存点恢复读取。请确保在测试运行之间使用相同的数据源,或者手动将此键添加到单元测试的执行上下文中。您好,是的,我使用相同的数据库,但我直接使用itemreader,我将尝试使用FlatFileItemReader