分离器流中的 Spring Integration WebFlux outboundGateway 导致同步分离器异步

问题描述 投票:0回答:1

我有一个 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()

spring-integration spring-webclient
1个回答
0
投票

WebFlux.outboundGateway()
本质上是异步的,并生成一个
Mono
作为回复,在将实际回复发布到输出通道之前,在
.publishOn(Schedulers.boundedElastic())
上对其进行评估。

要使其阻塞,请考虑将其包装成

handle()
gateway()

	
© www.soinside.com 2019 - 2024. All rights reserved.