code: def _processLostJobs(self):
          
          # In the case that there is nothing happening (no updated jobs to
          # gather for rescueJobsFrequency seconds) check if there are any jobs
          # that have run too long (see self.reissueOverLongJobs) or which have
          # gone missing from the batch system (see self.reissueMissingJobs)
          if ((time.time() - self.timeSinceJobsLastRescued) >= self.config.rescueJobsFrequency):
              # We only rescue jobs every N seconds, and when we have apparently
              # exhausted the current jobGraph supply
              self.reissueOverLongJobs()
              logger.info("Reissued any over long jobs")
  
              hasNoMissingJobs = self.reissueMissingJobs()
              if hasNoMissingJobs:
                  self.timeSinceJobsLastRescued = time.time()
              else:
                  # This means we'll try again in a minute, providing things are quiet
                  self.timeSinceJobsLastRescued += 60
              logger.debug("Rescued any (long) missing jobs")
docs: Process jobs that have gone awry