Я использую этот пример в качестве отправной точки для весеннего пакетного приложения с использованием удаленного разбиения на блоки: https://github.com/benas/spring-batch-remote-chunking-sample/blob/master/src/main/java/io/github/benas/MasterConfiguration.java В этом примере я добавил свои пользовательские устройства чтения / записи, но я не изменил конфигурацию,Пример работает нормально, за исключением того, что я не могу остановить работу после того, как все ведомые устройства завершены.
Я пытался использовать JobListner, чтобы остановить работу внутри метода afterJob, но без результатов.
public class MyJobExecutionListener implements JobExecutionListener {
@Override
public void beforeJob(JobExecution jobExecution) {
// TODO Auto-generated method stub
}
@Override
public void afterJob(JobExecution jobExecution) {
System.out.println("afterJob start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println(jobExecution.getExitStatus().getExitCode());
System.out.println(jobExecution.getExitStatus().getExitDescription());
System.out.println(jobExecution.getStartTime());
System.out.println(jobExecution.getEndTime());
System.out.println(jobExecution.isRunning());
System.out.println(jobExecution.isStopping());
jobExecution.stop();
System.out.println("!!!!!!!!!");
System.out.println(jobExecution.isRunning());
System.out.println(jobExecution.isStopping());
System.out.println(jobExecution.getEndTime());
System.out.println("afterJob end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
}
jobExecution.getExitStatus (). GetExitCode () завершен. JobExecution.isStopping () имеет значение true, но приложение все еще работает.
Для запуска приложенияЯ использую SpringBoot (вместо этого я запускаю его как модульный тест, как в примере)
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class AppStarter {
public static void main(String[] args) {
System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!! start");
SpringApplication.run(AppStarter.class, args);
}
}
Есть ли способ остановить приложение после завершения?