在Amazon Web Services sdk for java中,可以为DynamoDB创建两个不同的客户端:同步和异步。然后可以将这两个对象传递给DynamoDBMapper的构造函数。因此,您应该能够创建两种不同的DynamoDBMapper:同步映射器和异步映射器。
我的问题是:异步映射器是如何工作的?我在异步映射器中找不到任何返回Future对象的方法。那么,如果我必须总是等待异步映射器的任何方法的返回值,我如何才能异步运行多个查询呢?
谢谢
发布于 2013-10-18 06:16:14
异步DynamoDB客户端扩展自同步客户端,并为返回未来的异步操作提供新的方法名。目前,DynamoDBMapper将始终使用您传入的任何AmazonDynamoDB客户端的同步方法。我们将此反馈作为使用映射器的异步支持的功能请求。
发布于 2021-07-19 22:12:05
现在,aws-sdk-java-v2附带的enhanced DynamoDB client支持这一点
首先,创建EnhancedClient和表对象的异步版本:
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
https://stackoverflow.com/questions/17990313
复制相似问题