@Override
    public void run() {
      if (!isPeriodic()) {
        super.run();
        futureDone(this);
      }
      else if (runAndReset() && !isShutdown()) {
        setNextRunTime();
        delayQueue.offer(this);
        if (isShutdown()) {
          delayQueue.remove(this);
        }
      }
    }
@Override
    public void run()