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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage