As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usar a API do cliente avançado do DynamoDB de forma assíncrona
Se seu aplicativo exigir chamadas assíncronas e sem bloqueio para o DynamoDB, você poderá usar o DynamoDbEnhancedAsyncClient
-
Ao criar o
DynamoDbEnhancedAsyncClient
, é necessário usar a versão assíncrona do cliente padrão,DynamoDbAsyncClient
, conforme mostrado no trecho a seguir.DynamoDbEnhancedAsyncClient enhancedClient = DynamoDbEnhancedAsyncClient.builder() .dynamoDbClient(dynamoDbAsyncClient) .build();
-
Os métodos que retornam um único objeto de dados retornam um
CompletableFuture
do resultado em vez de somente o resultado. Entretanto, seu aplicativo pode fazer outro trabalho sem precisar bloquear o resultado. O trecho a seguir mostra o métodogetItem()
assíncrono.CompletableFuture<Customer> result = customerDynamoDbTable.getItem(customer); // Perform other work here. return result.join(); // Now block and wait for the result.
-
Métodos que retornam listas paginadas de resultados retornam um
SdkPublisher
em vez de um SdkIterable
que o DynamoDbEnhanceClient
síncrono retorna para os mesmos métodos. Seu aplicativo pode então inscrever um manipulador nesse publicador para lidar com os resultados de forma assíncrona, sem precisar bloquear.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 obter um exemplo mais completo de como trabalhar com a
SdkPublisher API
, consulte o exemplo na seção que discute o métodoscan()
assíncrono deste guia.