瀏覽代碼

Backend: Adds BaseBackend._encode used to get content_type/encoding

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

+ 9 - 4
celery/backends/base.py

@@ -236,9 +236,12 @@ class Backend(object):
         return result
 
     def encode(self, data):
-        _, _, payload = dumps(data, serializer=self.serializer)
+        _, _, payload = self._encode(data)
         return payload
 
+    def _encode(self, data):
+        return dumps(data, serializer=self.serializer)
+
     def meta_from_decoded(self, meta):
         if meta['status'] in self.EXCEPTION_STATES:
             meta['result'] = self.exception_to_python(meta['result'])
@@ -613,9 +616,11 @@ class BaseKeyValueStoreBackend(Backend):
 
     def _store_result(self, task_id, result, state,
                       traceback=None, request=None, **kwargs):
-        meta = {'status': state, 'result': result, 'traceback': traceback,
-                'children': self.current_task_children(request),
-                'task_id': bytes_to_str(task_id)}
+        meta = {
+            'status': state, 'result': result, 'traceback': traceback,
+            'children': self.current_task_children(request),
+            'task_id': bytes_to_str(task_id),
+        }
         self.set(self.get_key_for_task(task_id), self.encode(meta))
         return result