code: public synchronized void start() {
          if (future == null) {
              Runnable task = new Runnable() {
                                  public void run() {
                                      try {
                                          accumulator.publish();
                                      } catch (Exception e) {
                                          handleException(e);
                                      }
                                  }
                              };
              future = getExecutor().scheduleWithFixedDelay(task,
                                                            delayMillis, delayMillis,
                                                            TimeUnit.MILLISECONDS);
          }
      }
docs: Starts the {@code DataPublisher}.
  The method {@link DataAccumulator#publish} will be called approximately
  every {@code delayMillis} milliseconds.
  If the publisher has already been started, does nothing.
  
  @see #stop