public void loadSessions() { while (!isFinished()) { if (!isCoordinator()) { try { Thread.sleep(1000); } catch (InterruptedException ie) { log.error("Interrupted", ie); } } else { startLoading(); } } }
/** * Just coordinator will run this. And there is DB-lock, so the delegate.startLoading() will be permitted just by the single DC */ @Override protected void startLoading() { DBLockManager dbLockManager = new DBLockManager(session); dbLockManager.checkForcedUnlock(); DBLockProvider dbLock = dbLockManager.getDBLock(); dbLock.waitForLock(); try { if (isFinished()) { log.infof("Task already finished when DBLock retrieved"); } else { delegate.startLoading(); } } finally { dbLock.releaseLock(); } } }