Spring batch 如何重新启动失败的块-Spring批处理

Spring batch 如何重新启动失败的块-Spring批处理,spring-batch,Spring Batch,我正在为块处理编写Spring批处理。 我只有一份工作和一个步骤。在这一步中,我有动态大小的块 SingleJob->SingleStep->chunk_1..chunk_2..chunk_3…依此类推 下面是我正在尝试实施的一个案例 如果今天我运行一个作业,只有chunk_2失败,其余的chunk成功运行。现在,明天我只想运行/重新启动失败的块,即在本例中chunk_2。(我不想运行整个作业/步骤/其他成功完成的区块) 我看到SpringBatch允许存储元数据,并使用它帮助重新启动作业。但我

我正在为块处理编写Spring批处理。 我只有一份工作和一个步骤。在这一步中,我有动态大小的块

SingleJob->SingleStep->chunk_1..chunk_2..chunk_3…依此类推

下面是我正在尝试实施的一个案例

如果今天我运行一个作业,只有
chunk_2
失败,其余的chunk成功运行。现在,明天我只想运行/重新启动失败的块,即在本例中
chunk_2
。(我不想运行整个作业/步骤/其他成功完成的区块)

我看到SpringBatch允许存储元数据,并使用它帮助重新启动作业。但我不知道是否可以像上面讨论的那样重新启动特定块

我是否遗漏了任何概念,或者如果可能的话,任何伪代码/理论解释或参考都会有所帮助


感谢您的回复

这就是Spring批处理在重启场景中的工作方式,它将在上一次失败运行中停止的地方继续


因此,在您的示例中,如果第一次运行中的
chunk1
已正确处理,并且
chunk2
失败,则下一次作业执行将在
chunk2

处重新启动,如果chunk2失败,但允许执行其余的块,是否有可能。ie跳过错误块并继续执行。这可以使用面向容错块的步骤。但在这种情况下,这不再是一个失败,该步骤将跳过一个块并继续处理下一个块,直到完成。步骤的状态将为“完成”(通过跳过,您可以创建自定义退出状态,这里是一个示例:)。在这种情况下,由您决定如何重新处理跳过的项目。