Spring Boot Batch:如何使用作业参数运行作业

时间:2019-07-03 13:52:07

标签: java spring spring-boot spring-batch

我必须在spring batch上设置jobparemeters,但是使用spring boot batch无法轻松做到这一点。

我需要重新运行作业,但是如果参数相同,spring-batch将不会再次运行作业。因此,我决定添加一个时间戳作为参数。

1 个答案:

答案 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;
}

如果您有更好的方法,请告诉我。