Подтвердить что ты не робот

Как Spring Загрузочные пакетные задания

Я следил за этот образец для Spring Пакет с загрузкой.

При запуске основного метода выполняется задание. Таким образом, я не могу понять, как можно управлять выполнением задания. Например, как вы планируете задание или получаете доступ к выполнению задания или задаете параметры задания.

Я попытался зарегистрировать свой собственный JobLauncher

@Bean
public JobLauncher jobLauncher(JobRepository jobRepo){
    SimpleJobLauncher simpleJobLauncher = new SimpleJobLauncher();
    simpleJobLauncher.setJobRepository(jobRepo);
    return simpleJobLauncher;
}

но когда я пытаюсь использовать его в основном методе:

public static void main(String[] args) {
    ConfigurableApplicationContext ctx = SpringApplication.run(Application.class, args);    
    JobLauncher jobLauncher = ctx.getBean(JobLauncher.class);
    //try catch removed for readability
    jobLauncher.run(ctx.getBean(Job.class), new JobParameters());   
}

Задание снова выполняется при загрузке контекста, и я получил JobInstanceAlreadyCompleteException, когда пытаюсь запустить его вручную. Есть ли способ предотвратить автоматическое выполнение задания?

4b9b3361

Ответ 1

Выполнение заданий можно предотвратить, установив

spring.batch.job.enabled=false

в application.properties. Или вы можете использовать spring.batch.job.names, он будет иметь список имен заданий с разделителями-запятыми, которые будут запущены.

Взято отсюда: как остановить spring задание периодического запуска после запуска в первый раз при выполнении кода?