38 lines
879 B
Java
38 lines
879 B
Java
package org.gcube.dataanalysis.executor.job.management;
|
|
|
|
import org.apache.log4j.Logger;
|
|
import org.gcube.vremanagement.executor.stubs.TaskProxy;
|
|
|
|
public class WorkerWatcher {
|
|
private static int maxTries = 15;
|
|
private int currentTries;
|
|
private static String runningState = "RUNNING";
|
|
private static String failedState = "FAILED";
|
|
Logger logger;
|
|
|
|
TaskProxy proxy;
|
|
public WorkerWatcher(TaskProxy proxy, Logger logger){
|
|
this.proxy = proxy;
|
|
this.logger = logger;
|
|
currentTries = 1;
|
|
}
|
|
|
|
public String getState(){
|
|
String state ="";
|
|
try{
|
|
proxy.synchronize();
|
|
state = proxy.getState();
|
|
return state;
|
|
}catch(Exception e){
|
|
logger.error("Error in getting state: recover try number "+currentTries,e);
|
|
currentTries++;
|
|
if (currentTries>maxTries){
|
|
return failedState;
|
|
}
|
|
else return runningState;
|
|
}
|
|
|
|
}
|
|
|
|
}
|