[Checkins]
SVN: lovely.remotetask/trunk/src/lovely/remotetask/service.py
Remove canceled cron jobs.
Jürgen Kartnaller
juergen at kartnaller.at
Tue Apr 17 09:20:47 EDT 2007
Log message for revision 74200:
Remove canceled cron jobs.
Changed:
U lovely.remotetask/trunk/src/lovely/remotetask/service.py
-=-
Modified: lovely.remotetask/trunk/src/lovely/remotetask/service.py
===================================================================
--- lovely.remotetask/trunk/src/lovely/remotetask/service.py 2007-04-17 12:45:56 UTC (rev 74199)
+++ lovely.remotetask/trunk/src/lovely/remotetask/service.py 2007-04-17 13:20:46 UTC (rev 74200)
@@ -156,7 +156,7 @@
def processNext(self, now=None):
job = self._pullJob(now)
if job is None:
- return False
+ raise IndexError
jobtask = zope.component.getUtility(
self.taskInterface, name=job.task)
job.started = datetime.datetime.now()
@@ -173,7 +173,10 @@
def process(self, now=None):
"""See interfaces.ITaskService"""
- while self.processNext(now):
+ try:
+ while self.processNext(now):
+ pass
+ except IndexError:
pass
def _pullJob(self, now=None):
@@ -185,6 +188,7 @@
job = self._scheduledQueue.pull()
if job.status is not interfaces.CANCELLED:
self._insertCronJob(job, now)
+ # try to get the next cron job
while True:
try:
first = self._scheduledJobs.minKey()
@@ -198,9 +202,10 @@
self._scheduledJobs[first] = jobs[1:]
if len(self._scheduledJobs[first]) == 0:
del self._scheduledJobs[first]
- self._insertCronJob(job, now)
if job.status != interfaces.CANCELLED:
+ self._insertCronJob(job, now)
return job
+ # get a job from the input queue
if self._queue:
return self._queue.pull()
return None
More information about the Checkins
mailing list