//monitoring the job
protected void monitorJob(final String expId) {
Thread monitor = (new Thread() {
public void run() {
long previousUpdateTime=-1;
ExperimentStatus experimentStatus = null;
do {
try {
experimentStatus = client.getExperimentStatus(expId);
if (previousUpdateTime!=experimentStatus.getTimeOfStateChange()) {
previousUpdateTime=experimentStatus.getTimeOfStateChange();
log.info(expId
+ " : " + experimentStatus.getExperimentState().toString()
+ " ["+new Date(previousUpdateTime).toString()+"]");
}
Thread.sleep(2000);
} catch (Exception e) {
log.error("Thread interrupted", e.getMessage());
}
System.out.println(experimentStatus.getExperimentState().toString());
Assert.assertFalse(experimentStatus.getExperimentState().equals(ExperimentState.FAILED));
}while(!experimentStatus.getExperimentState().equals(ExperimentState.COMPLETED));
}
});
monitor.start();
try {
monitor.join();