Explorar o código

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

Ask Solem %!s(int64=15) %!d(string=hai) anos
pai
achega
e19189ebda
Modificáronse 2 ficheiros con 8 adicións e 3 borrados
  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