in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/JobListHelper.java [71:106]
public static Optional<JobId> getLastSubmittedJobId(final List<JobInfo> existingJobsList,
final List<CompletedJob> completedJobs) {
if(logger.isTraceEnabled()) { logger.trace("Entering getLastSubmittedJobDefinition existing jobs {} completedJobs {}",existingJobsList.size(),completedJobs.size() ); }
long highestJobNumber = -1;
JobInfo jInfoWithHighestJobNumber = null;
CompletedJob completedJobWithHighestJobNumber = null;
if(logger.isDebugEnabled()) { logger.debug("No of active jobs: {}", existingJobsList.size()); }
for (JobInfo jInfo : existingJobsList) {
if (jInfo.jobId.getJobNum() > highestJobNumber) {
highestJobNumber = jInfo.jobId.getJobNum();
jInfoWithHighestJobNumber = jInfo;
}
}
if(logger.isDebugEnabled()) { logger.debug("Highest Active job number: {}", highestJobNumber); }
if(highestJobNumber != -1) {
return ofNullable(jInfoWithHighestJobNumber.jobId);
} else {
// search in completed Jobs
for (CompletedJob cJob : completedJobs) {
Optional<JobId> completedJobId = JobId.fromId(cJob.getJobId());
if (completedJobId.isPresent() && completedJobId.get().getJobNum() > highestJobNumber) {
highestJobNumber = completedJobId.get().getJobNum();
completedJobWithHighestJobNumber = cJob;
}
}
if(highestJobNumber != -1) {
if(logger.isDebugEnabled()) { logger.debug("Highest completed job number: {}", highestJobNumber); }
return (JobId.fromId(completedJobWithHighestJobNumber.getJobId()));
}
}
return empty();
}