Переглянути джерело

Chord: fail_from_current_stack needs a stack (Issue #1605)

Ask Solem 11 роки тому
батько
коміт
d687d03830
1 змінених файлів з 11 додано та 5 видалено
  1. 11 5
      celery/backends/base.py

+ 11 - 5
celery/backends/base.py

@@ -474,11 +474,17 @@ class KeyValueStoreBackend(BaseBackend):
                 exc=ChordError('Cannot restore group: {0!r}'.format(exc)),
             )
         if deps is None:
-            callback = maybe_signature(task.request.chord, app=self.app)
-            return app._tasks[callback.task].backend.fail_from_current_stack(
-                callback.id,
-                exc=ChordError('GroupResult {0} no longer exists'.format(gid))
-            )
+            try:
+                raise ValueError(gid)
+            except ValueError as exc:
+                callback = maybe_signature(task.request.chord, app=self.app)
+                task = app._tasks[callback.task]
+                return task.backend.fail_from_current_stack(
+                    callback.id,
+                    exc=ChordError('GroupResult {0} no longer exists'.format(
+                        gid,
+                    ))
+                )
         val = self.incr(key)
         if val >= len(deps):
             callback = maybe_signature(task.request.chord, app=self.app)