瀏覽代碼

Exception sent by JSON serialized worker can be read by pickle configured worker

Ask Solem 11 年之前
父節點
當前提交
60b9e70fb9
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      celery/backends/base.py

+ 4 - 4
celery/backends/base.py

@@ -166,11 +166,11 @@ class BaseBackend(object):
     def exception_to_python(self, exc):
         """Convert serialized exception to Python exception."""
         if exc:
-            if self.serializer in EXCEPTION_ABLE_CODECS:
-                return get_pickled_exception(exc)
-            elif not isinstance(exc, BaseException):
-                return create_exception_cls(
+            if not isinstance(exc, BaseException):
+                exc = create_exception_cls(
                     from_utf8(exc['exc_type']), __name__)(exc['exc_message'])
+            if self.serializer in EXCEPTION_ABLE_CODECS:
+                exc = get_pickled_exception(exc)
         return exc
 
     def prepare_value(self, result):