Explorar el Código

Prepare exception even if errors ignored.

Ask Solem hace 15 años
padre
commit
7877c627f1
Se han modificado 1 ficheros con 7 adiciones y 5 borrados
  1. 7 5
      celery/worker/job.py

+ 7 - 5
celery/worker/job.py

@@ -117,13 +117,15 @@ class WorkerTaskTrace(TaskTrace):
 
     def handle_failure(self, exc, type_, tb, strtb):
         """Handle exception."""
-        # mark_as_failure returns an exception that is guaranteed to
-        # be pickleable.
         if self._store_errors:
-            stored_exc = self.task.backend.mark_as_failure(self.task_id,
-                                                           exc, strtb)
+            # mark_as_failure returns an exception that is guaranteed to
+            # be pickleable.
+            exc = self.task.backend.mark_as_failure(self.task_id, exc, strtb)
+        else:
+            exc = self.task.backend.prepare_exception(exc)
+
         return super(WorkerTaskTrace, self).handle_failure(
-                stored_exc, type_, tb, strtb)
+                exc, type_, tb, strtb)
 
 
 def execute_and_trace(task_name, *args, **kwargs):