[Checkins] SVN: lovely.remotetask/trunk/src/lovely/remotetask/service.py Do not use IndexError because of performance problems with tracebacks and eggs

Jürgen Kartnaller juergen at kartnaller.at
Fri Jun 15 09:30:10 EDT 2007


Log message for revision 76712:
  Do not use IndexError because of performance problems with tracebacks and eggs

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-06-15 13:01:58 UTC (rev 76711)
+++ lovely.remotetask/trunk/src/lovely/remotetask/service.py	2007-06-15 13:30:09 UTC (rev 76712)
@@ -53,7 +53,7 @@
 
     _scheduledJobs  = None
     _scheduledQueue = None
-        
+
     def __init__(self):
         super(TaskService, self).__init__()
         self._counter = 1
@@ -173,7 +173,7 @@
     def processNext(self, now=None):
         job = self._pullJob(now)
         if job is None:
-            raise IndexError
+            return False
         jobtask = component.getUtility(self.taskInterface, name=job.task)
         job.started = datetime.datetime.now()
         if not hasattr(storage, 'runCount'):
@@ -203,10 +203,7 @@
 
     def process(self, now=None):
         """See interfaces.ITaskService"""
-        try:
-            while self.processNext(now):
-                pass
-        except IndexError:
+        while self.processNext(now):
             pass
 
     def _pullJob(self, now=None):
@@ -271,9 +268,8 @@
         request.setTraversalStack(path)
         try:
             zope.publisher.publish.publish(request, False)
-        except IndexError:
-            log.debug('waiting for next %s task'% path[1])
-            time.sleep(1)
+            if not request.response._result:
+                time.sleep(1)
         except:
             # This thread should never crash, thus a blank except
             pass



More information about the Checkins mailing list