[Checkins] SVN: Sandbox/gotcha/z3c.taskqueue/src/z3c/taskqueue/baseservice.py putting back execption logging code
Godefroid Chapelle
gotcha at bubblenet.be
Thu Apr 22 06:36:12 EDT 2010
Log message for revision 111255:
putting back execption logging code
Changed:
U Sandbox/gotcha/z3c.taskqueue/src/z3c/taskqueue/baseservice.py
-=-
Modified: Sandbox/gotcha/z3c.taskqueue/src/z3c/taskqueue/baseservice.py
===================================================================
--- Sandbox/gotcha/z3c.taskqueue/src/z3c/taskqueue/baseservice.py 2010-04-22 10:34:26 UTC (rev 111254)
+++ Sandbox/gotcha/z3c.taskqueue/src/z3c/taskqueue/baseservice.py 2010-04-22 10:36:11 UTC (rev 111255)
@@ -33,7 +33,9 @@
log = logging.getLogger('z3c.taskqueue')
+storage = threading.local()
+
class BaseTaskService(contained.Contained, persistent.Persistent):
"""A persistent task service.
@@ -197,6 +199,9 @@
job.status = interfaces.ERROR
return True
job.started = datetime.datetime.now()
+ if not hasattr(storage, 'runCount'):
+ storage.runCount = 0
+ storage.runCount += 1
try:
job.output = jobtask(self, job.id, job.input)
if job.status != interfaces.CRONJOB:
@@ -206,9 +211,15 @@
if job.status != interfaces.CRONJOB:
job.status = interfaces.ERROR
except Exception, error:
- job.error = error
- if job.status != interfaces.CRONJOB:
- job.status = interfaces.ERROR
+ if storage.runCount <= 3:
+ log.error('Caught a generic exception, preventing thread '
+ 'from crashing')
+ log.exception(str(error))
+ raise
+ else:
+ job.error = error
+ if job.status != interfaces.CRONJOB:
+ job.status = interfaces.ERROR
job.completed = datetime.datetime.now()
return True
More information about the checkins
mailing list