code: final void rescheduleIfNeeded() {
  		if (executeEvery > 0 && !TaskScheduler.stopping) {
  			synchronized (this) {
  				status = Task.STATUS_NOT_STARTED;
  				executeIn(executeEvery);
  			}
  			TaskScheduler.schedule(this);
  		} else if (nextExecution > 0 && !TaskScheduler.stopping) {
  			synchronized (this) {
  				this.status = Task.STATUS_NOT_STARTED;
  			}
  			TaskScheduler.schedule(this);
  		}
  	}
docs: Called by a task executor, just after execute method finished.