Browse Source

TaskSetResult save+restore. Now have to explicitly save the result

Ask Solem 15 years ago
parent
commit
6127f73e09
2 changed files with 16 additions and 1 deletions
  1. 16 0
      celery/result.py
  2. 0 1
      celery/task/base.py

+ 16 - 0
celery/result.py

@@ -303,6 +303,22 @@ class TaskSetResult(object):
                         time.time() >= time_start + timeout:
                     on_timeout()
 
+    def save(self, backend=default_backend):
+        """Save taskset result for later retrieval using :meth:`restore`.
+
+        Example:
+
+            >>> result.save()
+            >>> result = TaskSetResult.restore(task_id)
+
+        """
+        backend.store_taskset(taskset_id, result)
+
+    @classmethod
+    def restore(self, taskset_id, backend=default_backend):
+        """Restore previously saved taskset result."""
+        return backend.get_taskset(taskset_id)
+
     @property
     def total(self):
         """The total number of tasks in the :class:`celery.task.TaskSet`."""

+ 0 - 1
celery/task/base.py

@@ -548,7 +548,6 @@ class TaskSet(object):
             publisher.close()
             conn.close()
         result = TaskSetResult(taskset_id, subtasks)
-        self.task.backend.store_taskset(taskset_id, result)
 
         return result