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.
-
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();
-
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étodogetItem()
asíncrono.CompletableFuture<Customer> result = customerDynamoDbTable.getItem(customer); // Perform other work here. return result.join(); // Now block and wait for the result.
-
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étodoscan()
asíncrono de esta guía.