Me gustaría realizar una llamada REST asincrónica a DynamoDB utilizando CompletableFuture, y se proporciona el siguiente método: private CompletableFuture<updateitemresult> updateDynamodbAsync(UpdateItemRequest request) { return CompletableFuture.supplyAsync(() -> { UpdateItemResult result = amazonDynamoDBClient.updateItem(request); return result; }); } A continuación, se muestra la ejecución del código: UpdateItemResult result = null; CompletableFuture<updateitemresult> updateItemResultCompletableFuture = updateDynamodbAsync(updateItemRequest); . . . Read more
Imagina que tengo una clase cuyo método (proceso) puede ser llamado concurrentemente. Este método realiza un procesamiento (hacerProceso) que no puede ser ejecutado concurrentemente. Además, si se llama al método proceso, pero el procesamiento (hacerProceso) ya está en progreso, la invocación del método proceso debe esperar hasta que el procesamiento . . . Read more
private void processEvents(Listevents) { CompletableFuture<void> completableFuture = CompletableFuture.runAsync( () -> processEventsAsynchronously(events)); while (!completableFuture.isDone() || completableFuture.isCancelled() || completableFuture.isCompletedExceptionally()) { // esperar a que todos los hilos se procesen } if (completableFuture.isDone() || completableFuture.isCancelled() || completableFuture.isCompletedExceptionally()) { executeRemainingFlow(); } } private void processEventsAsynchronously(Listevents) { Executor executor = Executors.newFixedThreadPool(5); for (Object event : . . . Read more