code: public BatcherBuilder timeBound(long time, TimeUnit timeUnit) {
          checkState(this.interval == UNSET_INT, "Max time already set");
          checkArgument(time > 0, "Required to have a time interval greater than 0");
          requireNonNull(timeUnit);
          this.interval = timeUnit.toNanos(time);
          return this;
      }
docs: Add a max time component for a batcher.  If specified a batcher will call the {@link BatchListener}
  as soon as the time bound has been exceeded.
  
  NOTE: This interval is the time since successfully sending the last batch to the batchlistener.  This means
  that if a blocking {@link BatcherBuilder#listenerService(ExecutorService)} is used then the time interval will not
  restart until it has been successfully handed off to the {@link BatcherBuilder#listenerService(ExecutorService)}.