QueueingStrategy<QSTaskModel> queueingStrategy = QueueingStrategies.newHeapQueueingStrategy(
configuration.getDouble(QSConfig.PROP_HEAP_STRATEGY_TRIGGER),
configuration.getLong(QSConfig.PROP_HEAP_STRATEGY_MAX_DELAY),
configuration.getLong(QSConfig.PROP_HEAP_STRATEGY_HINT)
);
QSTaskService taskService = new ThreadedRoundRobinQSTaskService(queueingStrategy, taskServices);
TaskServiceIterable taskIterable = new TaskServiceIterable(taskService);
Iterable<Collection<TaskHandle>> taskControlIterable = Iterables.transform(taskIterable, new TaskControlFunction(workerIdService));
ExecutorService workerExecutorService = StrategicExecutors.newBalancingThreadPoolExecutor(
new ThreadPoolExecutor(