现在我接受一个http请求来处理耗时的任务。所以我想先回复请求者,然后使用其他流异步来处理它。
我尝试在handler((方法中使用CompletableFuture.runAsync,然后使用MessageChannel.send do .但我认为应该有更优雅的方式
@Bean
public IntegrationFlow testFlow(){
return IntegrationFlows.from("requestChannel")//accept an request
.handle(handlerSomeThing())//do something
.handle()?// how to send message to main and reply quickly
.enrichHeaders(c->c.header(HttpHeaders.STATUS_CODE,HttpStatus.OK))
.get();
}
@Bean
public IntegrationFlow mainFlow(){
return IntegrationFlows.from("mainChannel")//accept an request
.handleMainLogic()//handler main logic
.get();
}
用户 apublishSubscribeChannel
.
看到这个答案。
添加任务执行器,以便两个子流并行运行。