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: REACTIVE-PROGRAMMING

Proyecto Reactor: buffer con ejecución paralela.

Necesito copiar datos de una fuente (en paralelo) a otra en lotes. Hice esto: Flux.generate((SynchronousSink<String> sink) -> { try { String val = dataSource.getNextItem(); if (val == null) { sink.complete(); return; } sink.next(val); } catch (InterruptedException e) { sink.error(e); } }) .parallel(4) .runOn(Schedulers.parallel()) .doOnNext(dataTarget::write) .sequential() .blockLast(); class dataSource{ public Item . . . Read more

Cómo reescribir Uni> a Multi sin una lista? Programación Reactiva.

Como estoy trabajando en un proyecto en el que quiero reescribir Uni a Multi para un método “findall” para obtener todos los documentos de mongodb de una colección. Intenté reescribirlo, pero no pude encontrar una solución. Original: public Uni<List<Book>> findAll(List<String> authors) { return getCollection(). find(Filters.all("authors",authors)).map(Book::from).collectItems().asList(); } Lo que intenté (pero . . . Read more

“Llamada de método de bloqueo inapropiado” cuando un StringBuilder agrega otro.

¿Por qué IntelliJ IDEA muestra la advertencia “Llamada de método de bloqueo inapropiada” cuando un StringBuilder añade otro? lang-java public Mono<String> doSomethingReactive() { final StringBuilder sb1 = new StringBuilder("hello"); final StringBuilder sb2 = new StringBuilder("world"); sb1.append(sb2); // Este append() causa la advertencia “Llamada de método de bloqueo inapropiada” sb1.append(sb2.toString()); // . . . Read more

La excepción de Blockhound ocurre incluso con programadores explícitos.

Tengo un fragmento de código similar para programar una entrada/salida en un pool de hilos separado, pero desafortunadamente necesitamos su respuesta para decidir si proceder o no. private Response getItemsNonBlockingMethod(String id, final String path) { WebTarget webTarget = sampleServWebTarget .path(path).queryParam(“id”, id); Mono<response> responseMono = Mono.fromCallable(() -> { // La E/S . . . Read more