jobOperatorを使用して実行の実行を停止しています。以下は私のサンプルコードです。SpringバッチSimpleJobOperatorはメソッドgetRunningExecutionsによって取得された実行IDを停止できます
Set<Long> executionIds = jobOperator.getRunningExecutions(updateHistoryPriceJob.getName());
for(Long executionId: executionIds){
jobOperator.stop(executionId);
}
ただし、次の例外がスローされます。
Caused by: org.springframework.batch.core.launch.JobExecutionNotRunningException: JobExecution must be running so that it can be stopped: JobExecution: id=495, version=2, startTime=2017-05-09 19:11:15.759, endTime=null, lastUpdated=2017-05-09 23:20:18.583, status=STOPPING, exitStatus=exitCode=UNKNOWN;exitDescription=, job=[JobInstance: id=495, version=0, Job=[updateHistoryPriceJob]], jobParameters=[{date=1494328275738}]
私はgetRunningExecutionsがストップbatchStatusをチェックするでしょうが、終了時刻がnullの実行を取得することを発見しました。