当我等到我的 spark apache 工作完成但没有成功时,我试图避免“while(true)”解决方案。
我有 spark 应用程序,它假设处理一些数据并将结果放入数据库,我确实从我的 spring 服务中调用它,并希望等到工作完成。
例子:
带有方法的启动器:
@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());
}
如何正确等待处理程序的状态为“完成”。