2013-08-01 11 views
11

In der Amazon Web Services SDK für Java gibt es die Möglichkeit, zwei verschiedene Clients für DynamoDB zu erstellen: Sync und Async. Die zwei Objekte können dann an den Konstruktor von DynamoDBMapper übergeben werden. Sie sollten also in der Lage sein, zwei verschiedene Arten von DynamoDBMapper zu erstellen: Sync-Mapper und Async-Mapper.Aws SDK für Java, Dynamo Db Mapper async

Meine Frage ist: Wie funktioniert der Async-Mapper? Ich kann keine Methode im Async-Mapper finden, die ein Future-Objekt zurückgibt. Also, wie könnte ich mehrere Abfragen asynchron ausführen, wenn ich immer den Rückgabewert einer beliebigen Methode des Async-Mappers abwarten muss?

Dank

+0

Gute Frage. Ich habe mich genauso gefragt. Ich habe einen asynchronen Client erstellt und an den DynamoMapper übergeben, aber ich glaube nicht, dass dies ein asynchroner Aufruf ist. Die Dokumentation ist sehr unklar. – agentx

+1

Genau ... Am Ende habe ich eine Implementierung von Callable geschrieben, die den SyncMapper in der Methode "call" verwendet. Dann führe ich eine solche Implementierung in einem Executor-Thread aus, der ein Future -Objekt zurückgibt, das zum Abrufen der Ergebnisse der Abfrage und zum Synchronisieren mit anderen Abfrageergebnissen verwendet werden kann. Das funktioniert gut. – Ulisse

+0

Welchen Rahmen verwenden Sie für den Executor-Thread? Ich schreibe einen Spring MVC-Controller, der POST-Daten empfängt und den Mapper verwendet, um die Daten im Dynamo zu speichern. Ich bin mir nicht sicher über das Erstellen von Threads .. es ist eine schlechte Praxis, einen Thread für jede POST-Anfrage zu erstellen, die Sie erhalten. Ich bin mir nicht sicher, wie es weitergehen soll. Ich brauche einen aysnc-Client mit dem Mapper. – agentx

Antwort

13

Der asynchrone DynamoDB Client von dem synchronen Client erstreckt, und Namen neuen Verfahren zur asynchronen Operationen bereitstellt, das Futures zurückzukehren. Momentan verwendet der DynamoDBMapper immer die synchronen Methoden des von Ihnen übergebenen AmazonDynamoDB-Clients. Wir nehmen diese Rückmeldung als Feature-Anforderung für die asynchrone Unterstützung mithilfe des Mappers.

+2

Vielen Dank Jason, ich freue mich darauf, diese Funktion so bald wie möglich zu sehen! – Ulisse

+2

Würde diese Funktion lieben! – oggmonster

+1

Absolut würde gerne sehen, Parität zwischen der Low-Level-und High-Level-API in Bezug auf Async. –

Verwandte Themen