簡體   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