Browse Source

Fix celery issues when using flower REST API

Thierry RAMORASOAVINA 8 years ago
parent
commit
f5213852a9
1 changed files with 11 additions and 3 deletions
  1. 11 3
      celery/events/state.py

+ 11 - 3
celery/events/state.py

@@ -296,7 +296,7 @@ class Task(object):
         self.children = WeakSet(
             self.cluster_state.tasks.get(task_id)
             for task_id in children or ()
-            if task_id in self.cluster_state.tasks
+            if self.cluster_state is not None and task_id in self.cluster_state.tasks
         )
         self._serializer_handlers = {
             'children': self._serializable_children,
@@ -384,11 +384,19 @@ class Task(object):
 
     @cached_property
     def parent(self):
-        return self.parent_id and self.cluster_state.tasks[self.parent_id]
+        # issue github.com/mher/flower/issues/648
+        try:
+            return self.parent_id and self.cluster_state.tasks[self.parent_id]
+        except KeyError:
+            return None
 
     @cached_property
     def root(self):
-        return self.root_id and self.cluster_state.tasks[self.root_id]
+        # issue github.com/mher/flower/issues/648
+        try:
+            return self.root_id and self.cluster_state.tasks[self.root_id]
+        except KeyError:
+            return None
 
 
 class State(object):