mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
correcting task random candidate election logic
This commit is contained in:
parent
7734dbd654
commit
cfe206b32c
@ -208,12 +208,17 @@ public class HeartBeatManagementServiceImpl implements HeartBeatManagementServic
|
|||||||
Map<String, ServerContext> servers = heartBeatDAO.getActiveServerDetails(elapsedTimeInSeconds);
|
Map<String, ServerContext> servers = heartBeatDAO.getActiveServerDetails(elapsedTimeInSeconds);
|
||||||
if (servers != null && !servers.isEmpty()) {
|
if (servers != null && !servers.isEmpty()) {
|
||||||
ElectedCandidate presentCandidate = heartBeatDAO.retrieveCandidate();
|
ElectedCandidate presentCandidate = heartBeatDAO.retrieveCandidate();
|
||||||
if (presentCandidate != null &&
|
if (presentCandidate != null) {
|
||||||
presentCandidate.getTimeOfElection().before(new Timestamp(System.currentTimeMillis()
|
//if candidate is older than stipulated elapsed-time, purge and re-elect
|
||||||
|
if (presentCandidate.getTimeOfElection().before(new Timestamp(System.currentTimeMillis()
|
||||||
- TimeUnit.SECONDS.toMillis(elapsedTimeInSeconds)))) {
|
- TimeUnit.SECONDS.toMillis(elapsedTimeInSeconds)))) {
|
||||||
heartBeatDAO.purgeCandidates();
|
heartBeatDAO.purgeCandidates();
|
||||||
}
|
|
||||||
electCandidate(servers);
|
electCandidate(servers);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//first time execution, elect if not present
|
||||||
|
electCandidate(servers);
|
||||||
|
}
|
||||||
HeartBeatBeaconDAOFactory.commitTransaction();
|
HeartBeatBeaconDAOFactory.commitTransaction();
|
||||||
}
|
}
|
||||||
} catch (HeartBeatDAOException e) {
|
} catch (HeartBeatDAOException e) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user