#java #spring-integration #spring-integration-dsl
Вопрос:
У меня есть этот простой поток, который считывает файлы из каталога и выполняет некоторые действия :
@Bean
public IntegrationFlow processMessage() {
return IntegrationFlows
.from(messageFlow1Directory(), c -> c
.id("flow1")
.autoStartup(false)
.poller(Pollers.fixedDelay(30000)
.errorChannel(errorMessageChannel())))
.publishSubscribeChannel(s -> s
.subscribe(f -> f.handle("flow1Service", "processMessage"))
.subscribe(f -> f.handle(otherAction)))
.get();
}
Я добился того, чтобы запустить его с помощью шины управления в одном из моих основных классов :
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(Flow1Main.class, args);
controlBus.send(new GenericMessage<>("@flow1.start()"));
}
Что я хочу, так это дождаться завершения потока, прежде чем отправлять stop() и выходить из основного класса.
Как я могу это сделать ?
Заранее благодарю вас за вашу помощь
Ответ №1:
Если вы хотите обработать только одно сообщение, было бы проще использовать шлюз для отправки сообщения, вместо запуска/остановки опроса.