为执行多个路径的方法添加超时

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

    }


}