Ausführen von Batch-Jobs durch Spring Boot
ich folgtedieses Beispiel für Spring Batch mit Boot.
Wenn Sie die Hauptmethode ausführen, wird der Job ausgeführt. Auf diese Weise kann ich nicht herausfinden, wie man die Jobausführung steuern kann. Zum Beispiel, wie Sie einen Job einplanen, Zugriff auf die Jobausführung erhalten oder Jobparameter festlegen.
Ich habe versucht, meinen eigenen JobLauncher zu registrieren
@Bean
public JobLauncher jobLauncher(JobRepository jobRepo){
SimpleJobLauncher simpleJobLauncher = new SimpleJobLauncher();
simpleJobLauncher.setJobRepository(jobRepo);
return simpleJobLauncher;
}
aber wenn ich versuche, es in der Hauptmethode zu verwenden:
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());
}
Der Job wird wieder ausgeführt, wenn der Kontext geladen ist und ich bekamJobInstanceAlreadyCompleteException
wenn ich versuche, es manuell auszuführen. Gibt es eine Möglichkeit, die automatische Jobausführung zu verhindern?