Usar a API do cliente avançado do DynamoDB de forma assíncrona - AWS SDK for Java 2.x

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. Ele é semelhante à implementação síncrona, mas com as seguintes diferenças principais:

  1. 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();
  2. 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étodo getItem() assíncrono.

    CompletableFuture<Customer> result = customerDynamoDbTable.getItem(customer); // Perform other work here. return result.join(); // Now block and wait for the result.
  3. 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étodo scan() assíncrono deste guia.