diff --git a/lib/jqueue.py b/lib/jqueue.py index cc988964cfdee711204529a64a18f2e53ca44609..c6442f5717bd02c96336860dc5e3185fc112873f 100644 --- a/lib/jqueue.py +++ b/lib/jqueue.py @@ -511,7 +511,20 @@ class JobQueue(object): # we're still doing our work. self.acquire() try: - for job in self._GetJobsUnlocked(None): + logging.info("Inspecting job queue") + + all_job_ids = self._GetJobIDsUnlocked() + lastinfo = time.time() + for idx, job_id in enumerate(all_job_ids): + # Give an update every 1000 jobs or 10 seconds + if idx % 1000 == 0 or time.time() >= (lastinfo + 10.0): + jobs_count = len(all_job_ids) + logging.info("Job queue inspection: %d/%d (%0.1f %%)", + idx, jobs_count, 100.0 * (idx + 1) / jobs_count) + lastinfo = time.time() + + job = self._LoadJobUnlocked(job_id) + # a failure in loading the job can cause 'None' to be returned if job is None: continue @@ -530,6 +543,8 @@ class JobQueue(object): op.result = "Unclean master daemon shutdown" finally: self.UpdateJobUnlocked(job) + + logging.info("Job queue inspection finished") finally: self.release() except: