code: public Future<?> schedule(Runnable task, long delay, TimeUnit unit)
      {
          Preconditions.checkState(isOpen.get(), "CloseableExecutorService is closed");
  
          InternalFutureTask<Void> futureTask = new InternalFutureTask<Void>(new FutureTask<Void>(task, null));
          scheduledExecutorService.schedule(futureTask, delay, unit);
          return futureTask;
      }
docs: Creates and executes a one-shot action that becomes enabled
  after the given delay.
  
  @param task  the task to execute
  @param delay the time from now to delay execution
  @param unit  the time unit of the delay parameter
  @return a Future representing pending completion of
  the task and whose <tt>get()</tt> method will return
  <tt>null</tt> upon completion