浏览代码

Improve performance of ResultSet.join_native

Stas Rudakou 11 年之前
父节点
当前提交
425c0fe6c8
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      celery/result.py

+ 4 - 2
celery/result.py

@@ -566,7 +566,9 @@ class ResultSet(ResultBase):
         result backends.
 
         """
-        results = self.results
+        results_index = dict(
+            (task_id, i) for i, task_id in enumerate(self.results)
+        )
         acc = None if callback else [None for _ in range(len(self))]
         for task_id, meta in self.iter_native(timeout, interval):
             value = meta['result']
@@ -575,7 +577,7 @@ class ResultSet(ResultBase):
             if callback:
                 callback(task_id, value)
             else:
-                acc[results.index(task_id)] = value
+                acc[results_index[task_id]] = value
         return acc
 
     def _failed_join_report(self):