TL; DR:Spring Batch将始终创建新的作业执行,并且不会重复使用先前失败的作业执行来继续执行。
更长的答案:首先,您需要了解Spring Batch中的三个相似但不同的概念:作业,作业实例,作业执行
我总是用这个例子:
在较高级别,这就是Spring Batch的恢复工作方式:
假设您的第一次执行在步骤3中失败,则可以提交具有相同参数(2018-01-01)的相同作业(日末批)。Spring Batch将尝试查找提交的* __
因此,根据设计,Spring尝试恢复的是先前失败的 (而不是作业执行)。当您重新运行先前失败的执行时,Spring批处理将不会重复使用执行。