バッチジョブを処理するためにSpringバッチを利用しようとしています。 私はexecutionId
を使用してstop
に実行中のジョブをしようとすると、ジョブがSpringブートJobOperator.stop(executionId)とJobOperator.restart(executionId)の動作
104「」、「3」、「104」
SpringBatchDb.BATCH_JOB_EXECUTION
テーブルにエントリの下で停止され、「2017年11月27日11:39: 10 '、' 2017-11-27 11:39:10 '、' 2017-11-27 11:39:48 '、' STOPPED '、' STOPPED '、' org.springframework.batch.core.JobInterruptedException '、' 2017年11月27日11:39:48' 、STATUS
とEXIT_CODE
がSTOPPED
のように更新されていることをNULL
注意。しかし、例外として、org.springframework.batch.core.launch.NoSuchJobException: No job configuration with the name [testJob] was registered at org.springframework.batch.core.configuration.support.MapJobRegistry.getJob(MapJobRegistry.java:66) at org.springframework.batch.core.launch.support.SimpleJobOperator.restart(SimpleJobOperator.java:275) at org.springframework.batch.core.launch.support.SimpleJobOperator$$FastClassBySpringCGLIB$$44ee6049.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:669) at org.springframework.batch.core.launch.support.SimpleJobOperator$$EnhancerBySpringCGLIB$$318ff269.restart(<generated>) at com.test.mypackage.batch.dao.BatchJobDaoImpl.restartJobExecution(BatchJobDaoImpl.java:62)
がスローされます。
executionIdを使用して同じジョブを再開しようとすると、起動が失敗し、同じ例外が表示されます(上記を参照)。
マイコードは、ここに
@Autowired
private DataSource dataSource;
@Autowired
private JobOperator jobOperator;
@Override
public Long stopRunningExecution(Long executionId) throws NoSuchJobExecutionException, JobExecutionNotRunningException {
jobOperator.stop(executionId);
return executionId;
}
@Override
public Long restartJobExecution(long executionId) throws JobParametersInvalidException, JobRestartException, JobInstanceAlreadyCompleteException, NoSuchJobExecutionException, NoSuchJobException {
return jobOperator.restart(executionId);
}
いただきました間違って非常に簡単ですか?