private void checkForMissedScans(){
  DateTime now=now();
  for (  ScheduledDailyScanUpload scheduledScan : _scheduledScans) {
    DateTime startCheckInterval=now.minusMinutes(10);
    Interval missedInterval=new Interval(startCheckInterval,now);
    DateTime scheduledTime=scheduledScan.getNextExecutionTimeAfter(startCheckInterval);
    if (missedInterval.contains(scheduledTime)) {
      _log.info("Attempting to start potentially missed scan for time {}",scheduledTime);
      try {
        startScheduledScan(scheduledScan,scheduledTime);
      }
 catch (      RepeatScanException e) {
        _log.info("Scan was not missed for time {}, no action taken",scheduledTime);
      }
catch (      ScanExecutionTimeException e) {
        _log.info("Too much time has elapsed since {}, no action taken",scheduledTime);
      }
    }
  }
}

private void checkForMissedScans ( ) { DateTime now = now ( ) ; for ( ScheduledDailyScanUpload scheduledScan : _scheduledScans ) { DateTime startCheckInterval = now . minusMinutes ( 10 ) ; Interval missedInterval = new Interval ( startCheckInterval , now ) ; DateTime scheduledTime = scheduledScan . getNextExecutionTimeAfter ( startCheckInterval ) ; if ( missedInterval . contains ( scheduledTime ) ) { _log . info ( "Attempting to start potentially missed scan for time {}" , scheduledTime ) ; try { startScheduledScan ( scheduledScan , scheduledTime ) ; } catch ( RepeatScanException e ) { _log . info ( "Scan was not missed for time {}, no action taken" , scheduledTime ) ; } catch ( ScanExecutionTimeException e ) { _log . info ( "Too much time has elapsed since {}, no action taken" , scheduledTime ) ; } } } }
checks all scheduled scans and tries to start any which should have stared within the last 10 minutes . this ensures that zookeeper and / or leadership outages of less than 10 minutes will not cause a scheduled scan to be completely missed , just possibly delayed .
