私はspark apacheの仕事が完了するまで待っているが、成功していないときに "while(true)"の解決策を避けようとしています。別のアプリケーションから起動する際にapache spark launcherのジョブを正しく待つ方法はありますか?
私はいくつかのデータを処理して結果をデータベースに格納するスパークアプリケーションを持っています。私はスプリングサービスから呼び出して、ジョブが完了するまで待つつもりです。
例:メソッドと
ランチャー:ハンドラの状態は "完成" されるまで適切に待機する
@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());
}
。
これを解決できましたか? – gaurav5430