Поток не завершается, как ожидалось

#spring-integration

#весенняя интеграция

Вопрос:

новое для SI. У меня есть этот поток SI ниже. Я бы ожидал, что программа Java завершит работу по завершении, после исходящего канала, но она продолжает ждать, и я не понимаю, почему. Заранее спасибо!

 <int-file:inbound-channel-adapter id="filesIn" 
directory="file:${com.cld.creditexpenses.inputdirectory}" 
    filename-pattern="*.313" auto-startup="true">
    <int:poller id="poller" fixed-delay="10000"/>
 </int-file:inbound-channel-adapter>   
      <int:service-activator  input-channel="filesIn" ref="delimitedFileProcessor" 
  method="processFile" output-channel="outChannel" />
        <int:outbound-channel-adapter id="outChannel" ref="fileArchiver" method="archiveFile" >
  </int:outbound-channel-adapter>
 

Ответ №1:

Вы должны закрыть контекст приложения после завершения обработки или заменить значение по умолчанию taskScheduler на значение, использующее потоки демона — см. Документацию.

Но это означает, что программа может завершиться до завершения обработки, поэтому вам нужно поддерживать ее работу каким-либо другим способом.

Комментарии:

1. Спасибо за ответ, Гэри. Итак, если я запускаю его, используя класс Spring Boot, как показано ниже, я думаю, мне нужно как-то изменить его, чтобы получить контекст приложения и закрыть его?

2. ‘@ImportResource(«classpath:si-config.xml «) @SpringBootApplication публичный класс CreditExpensesApplication { публичная статическая пустота main(строка[] аргументы) { SpringApplication.run(CreditExpensesApplication.class , аргументы); } }’

3. Не помещайте код в комментарии; вместо этого отредактируйте вопрос; как вы можете видеть, он совершенно нечитаемый. run Метод on SpringApplication возвращает контекст. Вам понадобится какой-то механизм, чтобы узнать, когда обработка завершена; затем закройте контекст. ConfigurableApplicationContext context = SpringApplication.run(...);

4. Спасибо, Гэри, но меня сводит с ума то, что я не могу сделать это только с конфигурацией XML. Наверное, я не понимаю, почему этот пример запускается и останавливается, но мой непрерывный. javarticles.com/2015/05 /…

5. Я думаю, посмотрите, где он закрывает контекст. Все еще сводит меня с ума.