if (visitor == null) {
throw new IllegalArgumentException("visitor cannot be null");
}
ThreadPoolExecutor executor = new ThreadPoolExecutor(config.minPoolSize(), config.maxPoolSize(), config
.keepAliveMilliseconds(), TimeUnit.MILLISECONDS, new DelayedBlockingQueue(config
.requestDelayMilliseconds()));
final ExecutorCounter counter = new ExecutorCounter();
try {