Ich habe versucht, asynchrone Abfrage mit java-driver-async-queries zu implementieren. Ich ändere eine Liste in der FutureCallback, aber es scheint, dass es nicht funktioniert -Sammlung mit ResultSetFuture ändern
Gibt es einen anderen Weg?
Basierend auf Mikhail Bakscheev Antwort ich implementiert und jetzt bekommen richtige Ergebnis. Nur eine Wendung. Es gibt einige zusätzliche Logik, die ich implementieren muss. Ich frage mich, ob ich List<MyClass>
statt List<ResultSetFuture>
und MyClass als verwenden können -
public class MyClass {
private Integer productCount;
private Integer stockCount;
private ResultSetFuture result;
}
Dann, während das Iterieren FutureList
gesetzt, wie -
ResultSetFuture result = session.executeAsync(query, key.get());
MyClass allResult = new MyClass();
allResult.setInCount(inCount);
allResult.setResult(result);
allResult.setSohCount(values.size() - inCount);
futuresList.add(allResult);
Was ist die Definition von „nicht funktioniert“ implementieren sollte? Veröffentlichen Sie das erwartete Verhalten und das tatsächliche Verhalten. –
Sie warten nicht auf Ihre Zukunft, oder? Es sieht so aus, als würdest du eine Menge Futures erschaffen und die Ergebnisstruktur sofort ausdrucken. Die Ergebnisstruktur wurde nicht ausgefüllt, da sich die meisten Futures noch im Flug befinden. – RussS
Danke. Was ist die Korrektur? Gibt es ein Codebeispiel, auf das ich verweisen kann? – Saurabh