es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tag: PROJECT-REACTOR

Cómo hacer que Flux siempre solicite un elemento adelante

He creado un Flux que utiliza subscribeOn(Subscribers.boundedElastic). Está envolviendo un Iterator que he creado. Lo que quisiera es que el Flux solicite el siguiente elemento en un hilo de trabajo mientras que el Subscriber está trabajando en el resultado actual. Idealmente, el Flux llamaría a hasNext() -> next() -> hasNext() . . . Read more

Flujo – flatMap paralelo con webclient – límite a una tasa de lotes fija limitada.

El código que tengo es este: return Flux.fromIterable(new Generator()).log() .flatMap( s -> webClient .head() .uri( MessageFormat.format( “/my-{2,number,#00}.xml”, channel, timestamp, s)) .exchangeToMono(r -> Mono.just(r.statusCode())) .filter(HttpStatus::is2xxSuccessful) .map(r -> s), 6) //solo solicitar 6 segmentos en paralelo a través de webClient .take(6) //solo necesitamos 6 respuestas 200 OK .sort(); Solo solicita HEAD, hasta . . . Read more

Procesamiento paralelo fin de ejecución en el proyecto Reactor.

Tengo el siguiente flujo reactivo que obtiene datos de una API de terceros y luego popula un hashMap en paralelo. HashMap <String, List <String>> tempHashMap = new HashMap <>(); Flux.fromIterable(cList) .parallel(20) .runOn(Schedulers.boundedElastic()) .flatMap(cId -> { List <String> lb = api.getlb(p,cId); if(!lb.isEmpty()) { tempHashMap.put(cId, lb); } return Flux.just(tempHashMap); }) .sequential() .publishOn(Schedulers.single()) . . . Read more

Cómo acceder al valor emitido por Flux en la suscripción.

Los elementos emitidos por Flux (en este caso “Rojo”, “Blanco”, “Azul”) se pasan a una llamada de servicio externo. Estoy obteniendo el valor de respuesta del servicio externo en returnValue. ¿Cómo puedo mapear los elementos enviados al servicio externo con la respuesta recibida?