Ich versuche zu vermeiden "while (true)" -Lösung, wenn ich warte, bis meine Spark Apache Job erledigt ist, aber ohne Erfolg.Wie man während des Startens von einer anderen Anwendung auf Apache Funke Launcher Job ordnungsgemäß wartet?
Ich habe Spark-Anwendung, die einige Daten verarbeiten und ein Ergebnis in die Datenbank eingeben soll, ich rufe es aus meinem Frühling Service und möchte warten, bis der Job erledigt ist.
Beispiel:
Launcher mit Methode:
@Override
public void run(UUID docId, String query) throws Exception {
launcher.addAppArgs(docId.toString(), query);
SparkAppHandle sparkAppHandle = launcher.startApplication();
sparkAppHandle.addListener(new SparkAppHandle.Listener() {
@Override
public void stateChanged(SparkAppHandle handle) {
System.out.println(handle.getState() + " new state");
}
@Override
public void infoChanged(SparkAppHandle handle) {
System.out.println(handle.getState() + " new state");
}
});
System.out.println(sparkAppHandle.getState().toString());
}
Wie man richtig warten, bis Zustand handler "Finished" wird.
konnten Sie das lösen? – gaurav5430