为执行多个路径的方法添加超时
Adding timeouts for a method executing multiple paths
我有以下方法定义
private void pollForStatus() throws InterruptedException {
if (state.equals("running")) {
log.debug("Task still running, Polling again ..");
TimeUnit.SECONDS.sleep(1);
pollForStatus();
}
else if (state.equals("complete") ) {
return;
}
else if (state.equals("stopped")) {
{
// Report error state
}
}
现在为了这个'pllForStatus'在某些情况下不会一直执行,我想为递归添加一个超时。 Java (7) 是如何实现的?
long futureTime = System.currentTimeMillis + yourInterval;
private void pollForStatus() throws InterruptedException {
if (state.equals("running")) {
log.debug("Task still running, Polling again ..");
TimeUnit.SECONDS.sleep(1);
//havnt reached cut off time yet, loop again
if(System.currentTimeMilis() < futureTime){
pollForStatus();
}
} else if (state.equals("complete")) {
return;
} else if (state.equals("stopped")) {
// Report error state
}
}
我有以下方法定义
private void pollForStatus() throws InterruptedException {
if (state.equals("running")) {
log.debug("Task still running, Polling again ..");
TimeUnit.SECONDS.sleep(1);
pollForStatus();
}
else if (state.equals("complete") ) {
return;
}
else if (state.equals("stopped")) {
{
// Report error state
}
}
现在为了这个'pllForStatus'在某些情况下不会一直执行,我想为递归添加一个超时。 Java (7) 是如何实现的?
long futureTime = System.currentTimeMillis + yourInterval;
private void pollForStatus() throws InterruptedException {
if (state.equals("running")) {
log.debug("Task still running, Polling again ..");
TimeUnit.SECONDS.sleep(1);
//havnt reached cut off time yet, loop again
if(System.currentTimeMilis() < futureTime){
pollForStatus();
}
} else if (state.equals("complete")) {
return;
} else if (state.equals("stopped")) {
// Report error state
}
}