ExecutorService workerExecutorService = StrategicExecutors.newBalancingThreadPoolExecutor(
new ThreadPoolExecutor(
configuration.getInt(QSConfig.PROP_WORKER_POOL_CORE),
configuration.getInt(QSConfig.PROP_WORKER_POOL_MAX),
1, TimeUnit.MINUTES,
new SynchronousQueue<Runnable>(), new CallerBlocksPolicy()
),
configuration.getFloat(QSConfig.PROP_WORKER_POOL_UTILIZATION), DEFAULT_SMOOTHING_WEIGHT, DEFAULT_BALANCE_AFTER
);
return new QueueReader<QSTaskModel, TaskKit<Object>, Object>(