首页 文章

COMPLETED Spring Batch作业重新启动是否正常?

提问于
浏览
0

根据Spring批处理JobOperator类的 restart(executionId) 文档,

https://docs.spring.io/spring-batch/4.0.x/api/org/springframework/batch/core/launch/JobOperator.html#restart-long-

重新启动失败或停止的JobExecution . 如果提供的ID不存在或与正常情况下已成功完成的JobInstance相对应,则会发生异常 .

我正在尝试使用 executionId 重新启动 COMPLETED 作业 . JobOperator 类能够重新启动批处理作业,即使它是 COMPLETED . 我希望它会抛出异常,正如文档所说 . 这种行为是正常的还是我遗漏了什么?

1 回答

  • 1

    这实际上取决于 .

    • 你应该使用 SimpleJobRepository

    • 你应该看看不是ExitStatus,而是 BatchStatus . ExitStatus是补充结果

    • 检查您是否有工作的识别参数

    if (execution.getJobParameters().getParameters().size() > 0 && (status == BatchStatus.COMPLETED || status == BatchStatus.ABANDONED)) {
      throw new JobInstanceAlreadyCompleteException(
                        "A job instance already exists and is complete for parameters=" + jobParameters
                        + ".  If you want to run this job again, change the parameters.");
    }
    

相关问题