我有一个 Spring 集成流程,其中使用串行拆分器拆分请求列表,以便每个子流程和每个请求都按顺序处理。 子流程使用 WebFlux.outboundGateway 通过 HTTPS 将请求发送到另一个系统,以允许使用 WebClient 的现代功能。 我发现,提交 HTTP 请求后,Splitter 开始处理其列表中的下一个请求,而不是等待子流完成。
如何配置它以使分离器以串行方式处理子流?
flow
.transform( Message.class, message -> generateRequests( message ) )
.split()
.handle(
WebFlux.outboundGateway( this::resolveUri, webClient )
.httpMethod( HttpMethod.GET )
.expectedResponseType( String.class )
)
.aggregate()
WebFlux.outboundGateway()
本质上是异步的,并生成一个Mono
作为回复,在将实际回复发布到输出通道之前,在.publishOn(Schedulers.boundedElastic())
上对其进行评估。
要使其阻塞,请考虑将其包装成
handle()
:gateway()