Sfoglia il codice sorgente

Try to fix #36 by making sure execute exc is pickleable

Ask Solem 15 anni fa
parent
commit
e19189ebda
2 ha cambiato i file con 8 aggiunte e 3 eliminazioni
  1. 8 1
      celery/execute.py
  2. 0 2
      celery/worker/__init__.py

+ 8 - 1
celery/execute.py

@@ -219,7 +219,14 @@ class ExecuteWrapper(object):
         self.kwargs = kwargs or {}
 
     def __call__(self, *args, **kwargs):
-        return self.execute()
+        return self.execute_safe()
+
+    def execute_safe(self, *args, **kwargs):
+        try:
+            return self.execute(*args, **kwargs)
+        except Exception, exc:
+            exc = default_backend.prepare_exception(exc)
+            raise exc
 
     def execute(self):
         # Convenience variables

+ 0 - 2
celery/worker/__init__.py

@@ -2,8 +2,6 @@
 
 The Multiprocessing Worker Server
 
-Documentation for this module is in ``docs/reference/celery.worker.rst``.
-
 """
 from carrot.connection import DjangoBrokerConnection, AMQPConnectionException
 from celery.worker.controllers import Mediator, PeriodicWorkController