@Override public void electLeader() { log.debug( "Election attempt by nodeId:" + this.nodeId ); redisTemplate.getConnectionFactory().getConnection().set( key.getBytes(), nodeId.getBytes(), Expiration.from( timeToLiveSeconds, TimeUnit.SECONDS ), SetOption.SET_IF_ABSENT ); if ( isLeader() ) { renewLeader(); Calendar calendar = Calendar.getInstance(); calendar.add( Calendar.SECOND, (int) (this.timeToLiveSeconds / 2) ); log.debug( "Next leader renewal job nodeId:" + this.nodeId + " set at " + calendar.getTime().toString() ); JobConfiguration leaderRenewalJobConfiguration = new JobConfiguration( CLUSTER_LEADER_RENEWAL, JobType.LEADER_RENEWAL, null, null, false, true, true ); leaderRenewalJobConfiguration.setLeaderOnlyJob( true ); schedulingManager.scheduleJobWithStartTime( leaderRenewalJobConfiguration, calendar.getTime() ); } }
jobConfiguration.setLeaderOnlyJob( leaderOnlyJob ); return jobConfiguration;
fileResourceCleanUp.setLeaderOnlyJob( true ); addAndScheduleJob( fileResourceCleanUp ); CRON_DAILY_2AM, null, false, true ); portJob( systemSettingManager, dataStatistics, SettingKey.LAST_SUCCESSFUL_DATA_STATISTICS ); dataStatistics.setLeaderOnlyJob( true ); addAndScheduleJob( dataStatistics ); validationResultNotification.setLeaderOnlyJob( true ); addAndScheduleJob( validationResultNotification ); credentialsExpiryAlert.setLeaderOnlyJob( true ); addAndScheduleJob( credentialsExpiryAlert ); dataSetNotification.setLeaderOnlyJob( true ); addAndScheduleJob( dataSetNotification ); removeExpiredReservedValues.setLeaderOnlyJob( true ); addAndScheduleJob( removeExpiredReservedValues ); leaderElectionJobConfiguration.setLeaderOnlyJob( false ); addAndScheduleJob( leaderElectionJobConfiguration );