翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DynamoDB 拡張クライアント API を非同期的に使用する
アプリケーションで DynamoDB へのノンブロッキングの非同期呼び出しが必要な場合は、DynamoDbEnhancedAsyncClient
-
DynamoDbEnhancedAsyncClient
を構築するときは、次のスニペットに示すように、標準クライアントの非同期バージョン、DynamoDbAsyncClient
を指定する必要があります。DynamoDbEnhancedAsyncClient enhancedClient = DynamoDbEnhancedAsyncClient.builder() .dynamoDbClient(dynamoDbAsyncClient) .build();
-
1 つのデータオブジェクトを返すメソッドは、結果だけではなく結果の
CompletableFuture
を返します。そうすることで、アプリケーションは結果をブロックせずに他の処理を行うことができます。次のスニペットは、非同期getItem()
メソッドを示しています。CompletableFuture<Customer> result = customerDynamoDbTable.getItem(customer); // Perform other work here. return result.join(); // Now block and wait for the result.
-
ページ分割された結果リストを返すメソッドは、同期
DynamoDbEnhanceClient
が同じメソッドで返すSdkIterable
の代わりに、 SdkPublisher
を返します。その後、アプリケーションはハンドラーをそのパブリッシャーにサブスクライブして、結果をブロックせずに非同期的に処理できます。 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.
SdkPublisher API
のより詳細な使用例については、このガイドの非同期scan()
メソッドについて説明しているセクションの例を参照してください。