code: public Future<String> queueJob(Callable<String> job) {
          Future<String> future = null;
          try {
              logger.debug("Queueing job {}", job);
              future = executor.submit(job);
          } catch (RejectedExecutionException e) {
              logger.error("Unable to queue a send-command-job! ", e);
          }
          checkQueueSize();
          return future;
      }
docs: Adds a job to the queue.
  At the same time tries to update the thread-pool size from the latest config of the job.
  
  @param job the job to do.
  @return the future object.
  @see java.util.concurrent.ThreadPoolExecutor#submit(Runnable)