Browse Source

ResultSet: Get app from first task

Ask Solem 10 years ago
parent
commit
8c9cb819b1
1 changed files with 13 additions and 2 deletions
  1. 13 2
      celery/result.py

+ 13 - 2
celery/result.py

@@ -417,13 +417,13 @@ class ResultSet(ResultBase):
     :param results: List of result instances.
 
     """
-    app = None
+    _app = None
 
     #: List of results in in the set.
     results = None
 
     def __init__(self, results, app=None, **kwargs):
-        self.app = app_or_default(app or self.app)
+        self.app = app
         self.results = results
 
     def add(self, result):
@@ -733,6 +733,17 @@ class ResultSet(ResultBase):
         except IndexError:
             pass
 
+    @property
+    def app(self):
+        if self._app is None:
+            self._app = (self.results[0].app if self.results else
+                         current_app._get_current_object())
+        return self._app
+
+    @app.setter
+    def app(self, app):  # noqa
+        self._app = app
+
     @property
     def backend(self):
         return self.app.backend if self.app else self.results[0].backend