Верблюд: выключение контекста верблюда

#apache-camel #graceful-shutdown

#апач-верблюд #изящное-выключение

Вопрос:

Я использую 2 независимых маршрута: один создает файлы в каталог, а другие потребляют файлы из того же каталога.

Маршрут 1 : .. .toD(PATH) // Запишите файл в каталог ПУТИ

Маршрут 2 : from(PATH "?noop=trueamp;readLock=changedamp;readLockMinAge=30s") //Использовать файл, созданный маршрутом 1

Я попробовал другой подход, чтобы отключить контекст верблюда в конце обработки. Для этого я использую планировщик, который выглядит следующим образом:

 @EnableScheduling @Component public class ShutdownProcessor implements Processor {   private Exchange exchange;   @Override  public void process(Exchange exchange) throws Exception {  this.exchange = exchange;  }   @Scheduled(fixedDelayString = "${batch.fixeddelay.ms}")  private void shutdown() {   if(exchange == null) {  log.info("Exchange not created yet");  return;  }   int inflightCount = exchange.getContext().getInflightRepository().size();   if(inflightCount == 0) {  this.exchange.getContext().stop();  this.exchange.getContext().shutdown();  System.exit(0);  }  }  

Это работает, но мне было интересно, был ли это правильный способ справиться с отключением контекста.