Utilizar la API de cliente mejorado de DynamoDB de forma asíncrona - AWS SDK for Java 2.x

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilizar la API de cliente mejorado de DynamoDB de forma asíncrona

Si la aplicación requiere llamadas asíncronas y sin bloqueo a DynamoDB, puede usar DynamoDBEnhancedAsyncClient. Es similar a la implementación síncrona, pero con las siguientes diferencias clave:

  1. Al compilar DynamoDbEnhancedAsyncClient, debe proporcionar la versión asíncrona del cliente estándar, DynamoDbAsyncClient, como se muestra en el siguiente fragmento.

    DynamoDbEnhancedAsyncClient enhancedClient = DynamoDbEnhancedAsyncClient.builder() .dynamoDbClient(dynamoDbAsyncClient) .build();
  2. Los métodos que devuelven un único objeto de datos devuelven un CompletableFuture del resultado en lugar de solo el resultado. De este modo, la aplicación podrá hacer otras tareas sin bloquear el resultado. En el siguiente fragmento se muestra el método getItem() asíncrono.

    CompletableFuture<Customer> result = customerDynamoDbTable.getItem(customer); // Perform other work here. return result.join(); // Now block and wait for the result.
  3. Los métodos que devuelven listas paginadas de resultados devuelven un SdkPublisher, en lugar de un SdkIterable que el método síncrono DynamoDbEnhanceClient devuelve para los mismos métodos. A continuación, su aplicación puede suscribir un controlador a ese publicador para tratar los resultados de forma asíncrona sin tener que bloquearse.

    PagePublisher<Customer> results = customerDynamoDbTable.query(r -> r.queryConditional(keyEqualTo(k -> k.partitionValue("Smith")))); results.subscribe(myCustomerResultsProcessor); // Perform other work and let the processor handle the results asynchronously.

    Para ver un ejemplo más completo de cómo trabajar con el SdkPublisher API, consulte el ejemplo de la sección que trata sobre el método scan() asíncrono de esta guía.