code: public void stop() {
          executor.shutdown(); // Disable new tasks from being submitted
          try {
              // Wait a while for existing tasks to terminate
              if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
                  executor.shutdownNow(); // Cancel currently executing tasks
                  // Wait a while for tasks to respond to being cancelled
                  if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
                      LOG.warn(getClass().getSimpleName() + ": ScheduledExecutorService did not terminate");
                  }
              }
          } catch (InterruptedException ie) {
              // (Re-)Cancel if current thread also interrupted
              executor.shutdownNow();
              // Preserve interrupt status
              Thread.currentThread().interrupt();
          }
      }
docs: Stops the reporter and shuts down its thread of execution.
  
  Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html