public void delayedSubmit(EventHandler eh, long delay, TimeUnit unit) {
    ListenableFuture<?> future = delayedSubmitTimer.schedule(() -> submit(eh), delay, unit);
    future.addListener(() -> {
      try {
        future.get();
      } catch (Exception e) {
        LOG.error("Failed to submit the event handler {} to executor", eh, e);
      }
    }, MoreExecutors.directExecutor());
  }
Initialize the executor lazily, Note if an executor need to be initialized lazily, then all
paths should use this method to get the executor, should not start executor by using
{@link ExecutorService#startExecutorService(ExecutorConfig)}
hbase-server/src/main/java/org/apache/hadoop/hbase/executor/ExecutorService.java