@Override
public AccountService getAccountService() {
try {
long startTimeMs = System.currentTimeMillis();
logger.info("Starting a HelixAccountService");
HelixPropertyStore<ZNRecord> helixStore =
CommonUtils.createHelixPropertyStore(accountServiceConfig.zkClientConnectString, storeConfig, null);
logger.info("HelixPropertyStore started with zkClientConnectString={}, zkClientSessionTimeoutMs={}, "
+ "zkClientConnectionTimeoutMs={}, rootPath={}", accountServiceConfig.zkClientConnectString,
storeConfig.zkClientSessionTimeoutMs, storeConfig.zkClientConnectionTimeoutMs, storeConfig.rootPath);
ScheduledExecutorService scheduler =
accountServiceConfig.updaterPollingIntervalMs > 0 ? Utils.newScheduler(1, HELIX_ACCOUNT_UPDATER_PREFIX, false)
: null;
HelixAccountService helixAccountService =
new HelixAccountService(helixStore, accountServiceMetrics, notifier, scheduler, accountServiceConfig);
long spentTimeMs = System.currentTimeMillis() - startTimeMs;
logger.info("HelixAccountService started, took {} ms", spentTimeMs);
accountServiceMetrics.startupTimeInMs.update(spentTimeMs);
return helixAccountService;
} catch (Exception e) {
throw new IllegalStateException("Could not instantiate HelixAccountService", e);
}
}
}