Как Spring Boot запускает пакетные задания

Я последовал заэтот образец для Весенней Партии с Загрузкой.

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

Я пытался зарегистрировать свой собственный 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 когда я пытаюсь запустить его вручную. Есть ли способ предотвратить автоматическое выполнение задания?

Ответы на вопрос(2)

Ваш ответ на вопрос