Przeglądaj źródła

Redis new_join: Chord error should call link_error callbacks (Issue #2796)

Ask Solem 9 lat temu
rodzic
commit
6cd7282578
1 zmienionych plików z 6 dodań i 8 usunięć
  1. 6 8
      celery/backends/redis.py

+ 6 - 8
celery/backends/redis.py

@@ -228,19 +228,17 @@ class RedisBackend(KeyValueStoreBackend):
                 except Exception as exc:
                     error('Chord callback for %r raised: %r',
                           request.group, exc, exc_info=1)
-                    app._tasks[callback.task].backend.fail_from_current_stack(
-                        callback.id,
-                        exc=ChordError('Callback error: {0!r}'.format(exc)),
+                    return self.chord_error_from_stack(
+                        callback,
+                        ChordError('Callback error: {0!r}'.format(exc)),
                     )
         except ChordError as exc:
             error('Chord %r raised: %r', request.group, exc, exc_info=1)
-            app._tasks[callback.task].backend.fail_from_current_stack(
-                callback.id, exc=exc,
-            )
+            return self.chord_error_from_stack(callback, exc)
         except Exception as exc:
             error('Chord %r raised: %r', request.group, exc, exc_info=1)
-            app._tasks[callback.task].backend.fail_from_current_stack(
-                callback.id, exc=ChordError('Join error: {0!r}'.format(exc)),
+            return self.chord_error_from_stack(
+                callback, ChordError('Join error: {0!r}'.format(exc)),
             )
 
     def _detect_client_capabilities(self, client_connect_timeout=False):