private ExecutorManager createExecutorManager()
throws ExecutorManagerException {
final ActiveExecutors activeExecutors = new ActiveExecutors(this.loader);
final ExecutionFinalizer executionFinalizer = new ExecutionFinalizer(this.loader,
this.updaterStage, this.alertHolder, this.runningExecutions);
final RunningExecutionsUpdaterThread updaterThread = new RunningExecutionsUpdaterThread(
new RunningExecutionsUpdater(
this.updaterStage, this.alertHolder, this.commonMetrics, this.apiGateway,
this.runningExecutions, executionFinalizer, this.loader), this.runningExecutions);
updaterThread.waitTimeIdleMs = 0;
updaterThread.waitTimeMs = 0;
final ExecutorManager executorManager = new ExecutorManager(this.props, this.loader,
this.commonMetrics, this.apiGateway, this.runningExecutions, activeExecutors,
this.updaterStage, executionFinalizer, updaterThread);
executorManager.setSleepAfterDispatchFailure(Duration.ZERO);
executorManager.initialize();
return executorManager;
}