我正在尝试将由ReactiveCrudRepository作为Flux<Client>检索的文档对象转换为Flux<ClientDto>
现在我想出了一种方法,我不确定这是不是阻塞:
public Mono<ServerResponse> findAll(final ServerRequest serverRequest) {
final Flux<ClientDto> map = clientService.findAll().map(client -> modelMapper.map(client, ClientDto.class)) /*.delayElements(Duration.ofSeconds(10))*/;
return ServerResponse.ok()
.contentType(MediaType.TEXT_EVENT_STREAM)
.body(map, ClientDto.class);
}我尝试添加带注释的delayElements方法,它似乎是一个接一个地发送它们,所以是非阻塞的。
我认为这是一个嵌套的问题,但在核心我想知道我如何确定我是否做了一些阻塞的事情。
提前感谢!
发布于 2019-07-02 16:36:29
如果显式地调用块方法,或者使用标准的jdbc连接器而不是像Spring Data提供的reactiveMongo这样的响应式连接器来连接数据库,那么就是阻塞。在您发布的代码片段中,没有任何阻塞,但为了完全确定您应该检查clientService类的代码及其嵌套调用(例如对存储库的调用)
https://stackoverflow.com/questions/56842130
复制相似问题