Aws sdk for java,dynamo db mapper async

时间:2013-08-01 09:34:23

标签: sdk amazon-web-services amazon-dynamodb

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

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

由于

2 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:0)

现在由 enhanced DynamoDB client 附带的 aws-sdk-java-v2 支持

首先,创建 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));

有关详细信息,请参阅 asynchronous-operations