![](/img/trans.png)
[英]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.