Spring Webflux 在 Flux 中等待 Flux
Spring Webflux Wait for a Flux inside a Flux
这是场景,我有一个来自 ReactiveMongoDB 的 Flux 和另一个来自 WebClient 的 Flux,所以
我需要 Mongodb 中的每个项目,我在网络客户端中查找他的项目。
问题是,我一直在使用块来等待网络客户端的到来,这影响了性能。
如果我不使用 Block,响应是在没有来自 webClient 的情况下发送的,所以它可能不会等待这个 itens 来。
有没有什么办法可以让所有的电话都发出来,然后再等一下呢?
return planetaRepository.findAll().flatMap(planetaVO -> {
planetaServiceFacade.recuperarFilmesParticipados(planetaVO.getNome()).collectList().doOnNext(planetaVO::setFilmes).block();
return Flux.just(planetaVO);
});
您可以尝试使用 thenReturn
return planetaRepository.findAll().flatMap(planetaVO -> {
return planetaServiceFacade.recuperarFilmesParticipados(planetaVO.getNome()).collectList()
.doOnNext(planetaVO::setFilmes)
.thenReturn(planetaVO);
});
我建议你不要用你的母语编写代码,如果你不是被迫的话。
这是场景,我有一个来自 ReactiveMongoDB 的 Flux 和另一个来自 WebClient 的 Flux,所以 我需要 Mongodb 中的每个项目,我在网络客户端中查找他的项目。
问题是,我一直在使用块来等待网络客户端的到来,这影响了性能。
如果我不使用 Block,响应是在没有来自 webClient 的情况下发送的,所以它可能不会等待这个 itens 来。
有没有什么办法可以让所有的电话都发出来,然后再等一下呢?
return planetaRepository.findAll().flatMap(planetaVO -> {
planetaServiceFacade.recuperarFilmesParticipados(planetaVO.getNome()).collectList().doOnNext(planetaVO::setFilmes).block();
return Flux.just(planetaVO);
});
您可以尝试使用 thenReturn
return planetaRepository.findAll().flatMap(planetaVO -> {
return planetaServiceFacade.recuperarFilmesParticipados(planetaVO.getNome()).collectList()
.doOnNext(planetaVO::setFilmes)
.thenReturn(planetaVO);
});
我建议你不要用你的母语编写代码,如果你不是被迫的话。