13

在适用于 java 的 Amazon Web Services sdk 中,可以为 DynamoDB 创建两个不同的客户端:同步和异步。然后可以将这两个对象传递给 DynamoDBMapper 的构造函数。因此,您应该能够创建两种不同类型的 DynamoDBMapper:同步映射器和异步映射器。

我的问题是:异步映射器如何工作?我在返回 Future 对象的异步映射器中找不到任何方法。那么,如果我必须始终等待异步映射器的任何方法的返回值,我怎么能异步运行多个查询呢?

谢谢

4

2 回答 2

16

异步 DynamoDB 客户端扩展自同步客户端,并为返回 Futures 的异步操作提供新方法名称。目前,DynamoDBMapper 将始终使用您传入的任何 AmazonDynamoDB 客户端的同步方法。我们将此反馈作为使用映射器的异步支持的功能请求。

于 2013-10-17T22:16:14.213 回答
1

这现在由aws-sdk-java-v2附带的增强型 DynamoDB 客户端支持

首先,创建 EnhancedClient 和 Table 对象的异步版本:

DynamoDbEnhancedAsyncClient enhancedClient = DynamoDbEnhancedAsyncClient.create();
DynamoDbAsyncTable<Customer> customerTable =
enhancedClient.table("customers_table", TableSchema.fromBean(Customer.class));

然后,您可以对其进行异步操作:

CompletableFuture<Customer> result = customerTable.getItem(r -> r.key(customerKey));

有关更多详细信息,请参阅异步操作

于 2021-07-19T14:12:04.903 回答