Tag: REACTIVE-PROGRAMMING
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
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
¿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
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
Imagínese que tengo estas dos fuentes de datos: val flowA: Flow suspend fun funB(): Int ¿Cómo puedo combinar el resultado de ambos en un flujo (digamos Flow<Pair<String, Int>>)? ¿Qué tal el enfoque a continuación? ¿Hay una mejor manera? combina ( flujoA, flujo {emit(funB())} ) { a, b -> … }