在Amazon的Amazon Web Services sdk中,可以为DynamoDB创建两个不同的客户端:sync和async。然后可以将这两个对象传递给DynamoDBMapper的构造函数。因此,您应该能够创建两种不同类型的DynamoDBMapper:sync mapper和async mapper。
我的问题是:异步映射器如何工作?我在async mapper中找不到任何返回Future对象的方法。那么,如果我必须总是等待异步映射器的任何方法的返回值,我怎么能异步运行多个查询呢?
由于
答案 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