code: Long cleanUpLongJobIfItHasFinishedExecuting(long currentTime, Job job) {
  		if(longRunningJobs.containsKey(job)
  			&& longRunningJobs.get(job).executionsCount != job.executionsCount()) {
  			Long jobLastExecutionTimeInMillis = job.lastExecutionEndedTimeInMillis();
  			int jobExecutionsCount = job.executionsCount();
  			LongRunningJobInfo jobRunningInfo = longRunningJobs.get(job);
  
  			long jobExecutionDuration = 0L;
  			if(jobExecutionsCount == jobRunningInfo.executionsCount + 1) {
  				jobExecutionDuration = jobLastExecutionTimeInMillis - jobRunningInfo.jobStartedtimeInMillis;
  				logger.info(
  					"Job '{}' has finished executing after {}ms",
  					job.name(),
  					jobExecutionDuration
  				);
  			} else {
  				jobExecutionDuration = currentTime - jobRunningInfo.jobStartedtimeInMillis;
  				logger.info(
  					"Job '{}' has finished executing after about {}ms",
  					job.name(),
  					jobExecutionDuration
  				);
  			}
  
  			longRunningJobs.remove(job);
  			return jobExecutionDuration;
  		}
  
  		return null;
  	}
docs: cleanup jobs that have finished executing after {@link #thresholdDetectionInMillis}