--- a/app/soc/views/models/cron.py Sun Apr 19 17:42:27 2009 +0000
+++ b/app/soc/views/models/cron.py Sun Apr 19 17:42:44 2009 +0000
@@ -92,15 +92,23 @@
queryGen = lambda: job_logic.getQueryForFields(filter=filter)
jobs = job_logic.entityIterator(queryGen, batchSize=10)
- for job in jobs:
- if random.randint(0, 5) > 0:
+ good = True
+ retry_jobs = []
+
+ for job in handler.iterate(jobs, retry_jobs):
+ if random.randint(0, 3) > 0:
+ retry_jobs.append(job)
continue
+
job_key = job.key().id()
- good = handler.handle(job_key)
+ status = handler.handle(job_key)
- if not good:
+ if status is handler.OUT_OF_TIME:
break
+ if status is handler.ERRORED:
+ retry_jobs.append(job)
+
jobs_completed += 1
response = 'Completed %d jobs in %d priority groups.' % (