2013-08-01 26 views
11

在Amazon Web Services sdk for java中,可以爲DynamoDB創建兩個不同的客戶端:同步和異步。這兩個對象可以傳遞給DynamoDBMapper的構造函數。因此,您應該能夠創建兩種不同類型的DynamoDBMapper:同步映射器和異步映射器。針對java的Aws sdk,Dynamo數據庫映射器異步

我的問題是:異步映射器是如何工作的?我在異步映射器中找不到返回Future對象的任何方法。那麼,如果我必須始終等待異步映射器的任何方法的返回值,我怎麼能夠異步運行多個查詢?

感謝

+0

好問題。我也很想知道。我創建了一個異步客戶端並將其傳遞給DynamoMapper,但我不認爲這會使其成爲異步調用。有關這方面的文件很不清楚。 – agentx

+1

正是......最後我寫了一個Callable 的實現,它在方法「call」中使用SyncMapper。然後,我在執行程序的線程中運行這樣的實現,該線程返回一個未來的對象,該對象可用於檢索查詢的結果並與其他查詢結果同步。這工作正常。 – Ulisse

+0

您對Executor Thread使用什麼框架?我正在寫一個Spring MVC控制器,它接收POST數據並使用映射器將數據保存在發電機中。我不確定是否創建線程..對於爲每個POST請求創建線程都是一種不好的做法。不知道如何進行......我需要一個帶映射器的aysnc客戶端。 – agentx

回答

13

異步DynamoDB客戶端從同步客戶端擴展,並提供了返回期貨異步操作的新方法名。目前,DynamoDBMapper將始終使用您傳入的任何AmazonDynamoDB客戶端的同步方法。我們將使用此反饋作爲使用映射器進行異步支持的功能請求。

+2

謝謝Jason,期待儘快看到這個功能! – Ulisse

+2

會喜歡這個功能! – oggmonster

+1

絕對會喜歡在異步方面看低級和高級API之間的平等。 –