我必须在spring batch上设置jobparemeters,但是使用spring boot batch无法轻松做到这一点。
我需要重新运行作业,但是如果参数相同,spring-batch将不会再次运行作业。因此,我决定添加一个时间戳作为参数。
答案 0 :(得分:1)
我找到了一种方法,将解决方案用于可能引起兴趣的用户。
首先,您需要将此属性添加到application.properties / application.yml中:
spring.batch.job.enabled: false
使用该属性,Spring Boot不会自动运行作业。
接下来,您必须在配置文件上添加一个可以运行作业并可以在其中放置jobparameters的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;
}
如果您有更好的方法,请告诉我。