Ich versuche, unseren Code zu beschleunigen, indem wir für DB-Schreibvorgänge session.executeAsync()
anstelle von session.execute()
aufrufen.
Wir haben Anwendungsfälle, bei denen die DB-Verbindung unter Umständen nicht verfügbar ist. Das vorherige execute()
löst eine Ausnahme aus, wenn die Verbindung unterbrochen wird (keine Hosts im Cluster verfügbar). Wir können diese Ausnahmen abfangen und die Daten irgendwo anders wiederholen oder speichern usw. ...
Mit executeAsync()
sieht es nicht so aus, als könnte man diesen Anwendungsfall erfüllen - auf das zurückgegebene ResultSetFuture
-Objekt muss zugegriffen werden, um das Ergebnis zu überprüfen, was den Zweck der Verwendung von executeAsync()
in umgeht der erste Ort ...
Gibt es eine Möglichkeit, einen Listener (oder etwas Ähnliches) irgendwo für den executeAsync () -Aufruf hinzuzufügen, der anderen Code, der einen DB-Schreibvorgang fehlgeschlagen hat, asynchron benachrichtigt?
Ist das relevant? Datastax 1.0.2 Java 1.7.40
Sie könnten einen Rückruf an die Methode übergeben, um eine Aktion für die Ausnahme auszuführen. Wenn Sie ResultSetFuture
benötigen, können Sie Folgendes versuchen:
Dann nenne es so:
%Vor%Wenn Sie wissen möchten, was die Ausnahme war, fügen Sie auch einen Ausnahmeparameter hinzu:
%Vor%Tags und Links java datastax datastax-java-driver