[英]How to run spring batch job multiple times with different job parameters?
[英]Spring boot batch : How to run job with job parameters
我不得不在春季批次上設置作業參數,但是對於春季啟動批次,沒有辦法輕松做到這一點。
我需要重新運行作業,但如果參數相同,spring-batch 將不會再次運行作業。 所以我決定添加一個時間戳作為參數。
我找到了一種方法並將我的解決方案放在 stackoverflow 上,供可能感興趣的人使用。
首先,您需要在 application.properties / application.yml 上添加此屬性:
spring.batch.job.enabled: false
使用該屬性,spring boot 不會自動運行作業。
接下來,在您的配置文件中,您必須添加一個 bean 來運行您的作業以及您可以放置作業參數的位置:
@Bean
@Autowired
public JobExecution run(Job job, JobLauncher jobLauncher) {
JobExecution jobExecution = null;
try {
JobParameters jobParameters = new JobParametersBuilder()
.addLong("time", System.currentTimeMillis()).toJobParameters();
jobExecution = jobLauncher.run(job, jobParameters);
logger.info("Exit Status : " + jobExecution.getStatus());
} catch (Exception e) {
e.printStackTrace();
}
return jobExecution;
}
如果你有更好的方法,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.