春季批次新人在這裏,所以,期待任何東西。春季批 - 重新運行作業參數
我有一個工作,成功運行完成與給定的工作參數paymentPeriod=1
。雖然要求期望作業能夠重新運行相同的作業參數paymentPeriod=1
。
我可以用下面的端點從郵遞員
@RestController
@RequestMapping(value = "api/jobs")
public class JobController {
@Autowired
private JobOperator jobOperator;
@RequestMapping(value = "/pay/{paymentPeriod}", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.ACCEPTED)
public void launchPaymentJob(@PathVariable Integer paymentPeriod) throws Exception {
this.jobOperator.start("paymentJob", String.format("paymentPeriod=%s", paymentPeriod));
}
}
雖然運行工作的第一時間參數paymentPeriod=1
當我有相同的參數,我得到JobInstanceAlreadyExistsException
不能啓動已經與名paymentJob
和parameters=paymentPeriod=1
感謝您的回覆,我雖然有疑問。當我傳遞params作爲'paymentPeriod'和時間戳的concat,在作業失敗時我怎樣才能動態地獲得唯一的作業實例值來重新啓動 –
通過用'JobExplorer'查詢你的元數據表你幾乎不需要那個精確的ID,因爲方法看起來像'List lastInstances = jobExplorer.getJobInstances( job.getName(),0,1);' –
文檔是[here](http://docs.spring.io/spring-batch/trunk/apidocs /org/springframework/batch/core/explore/JobExplorer.html) –