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

Выполнить программный пакет Spring пакетной работы?

У меня есть пакетное приложение Spring, которое я начинаю с CommandLineJobRunner. Но теперь я должен внедрить это приложение в нашу корпоративную среду. Там у нас есть собственное приложение Launcher, которое я должен использовать. Для этого приложения запуска требуется класс запуска с основным методом, который будет вызываться при запуске и где мне придется запускать Spring Batch.

Является единственным способом вручную назначить JobLauncher и запустить задание с помощью этой панели запуска или есть класс в Spring Batch, который будет поддерживать это (или кто-нибудь знает образец)?

4b9b3361

Ответ 1

Да, вы можете запускать свою работу программно. Если вы видите в источнике CommandLineJobRunner, основной метод просто создайте контекст Spring и воспользуйтесь программой запуска, чтобы запустить задание. Таким образом, вы можете сделать это в своем новом приложении.

Ответ 3

Используя приложение загрузки Spring, если вы не хотите использовать CommandLineRunner (по какой-либо причине или если вам нужна какая-то пользовательская логика), вы всегда можете сделать что-то вроде:

public static void main(String[] args) {

    SpringApplication app = new SpringApplication(YourApplication.class);
    app.setWebEnvironment(false);
    ConfigurableApplicationContext ctx = app.run(args);

    JobLauncher jobLauncher = ctx.getBean(JobLauncher.class);
    Job job = ctx.getBean("your-job-here", Job.class);
    JobParameters jobParameters = new JobParametersBuilder().toJobParameters();


    JobExecution jobExecution = jobLauncher.run(job, jobParameters);
    BatchStatus batchStatus = jobExecution.getStatus();
}