繁体   English   中英

Spring boot 批处理:如何使用作业参数运行作业

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM