Estoy tratando de convertir un objeto de documento que se recupera por el reactiveCrudRepositorySity como Flux<Client> en Flux<ClientDto>

Ahora que descubro una manera de hacer esto, no estoy seguro de si esto está bloqueando o no:

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);
  }

He intentado agregar el método de retrasajes comunes y parece que los está enviando uno por uno, por lo que no se bloquea.

Creo que esto es más de una pregunta anidada, pero en el núcleo quiero saber cómo descubro si hago algo que bloquea.

¡Gracias de antemano!

0
minihulk22 1 jul. 2019 a las 23:35

1 respuesta

La mejor respuesta

Está bloqueando si se llama explícitamente al método de bloqueo o si está utilizando un conector JDBC estándar para conectarse a la base de datos en lugar de un reactivo como ReactiveMongo proporcionado por los datos de resorte. En el Snnipet, ha publicado, no hay ningún bloqueo, sino que esté totalmente seguro de que debe revisar el Código de su clase de Servicio de Clientes y sus llamadas anidadas (a un repositorio, por ejemplo)

1
JArgente 2 jul. 2019 a las 08:36