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