Jelajahi Sumber

Redis new_join: Must receive error not einfo

Ask Solem 10 tahun lalu
induk
melakukan
a6ff6c1d62
1 mengubah file dengan 4 tambahan dan 2 penghapusan
  1. 4 2
      celery/app/trace.py

+ 4 - 2
celery/app/trace.py

@@ -368,6 +368,8 @@ def build_tracer(name, task, loader=None, hostname=None, store_errors=True,
                     )
                     )
                 except Exception as exc:
                 except Exception as exc:
                     I, R, state, retval = on_error(task_request, exc, uuid)
                     I, R, state, retval = on_error(task_request, exc, uuid)
+                    if task_request.chord:
+                        on_chord_part_return(task, state, exc)
                 except BaseException as exc:
                 except BaseException as exc:
                     raise
                     raise
                 else:
                 else:
@@ -402,6 +404,8 @@ def build_tracer(name, task, loader=None, hostname=None, store_errors=True,
                     except EncodeError as exc:
                     except EncodeError as exc:
                         I, R, state, retval = on_error(task_request, exc, uuid)
                         I, R, state, retval = on_error(task_request, exc, uuid)
                     else:
                     else:
+                        if task_request.chord:
+                            on_chord_part_return(task, state, retval)
                         if task_on_success:
                         if task_on_success:
                             task_on_success(retval, uuid, args, kwargs)
                             task_on_success(retval, uuid, args, kwargs)
                         if success_receivers:
                         if success_receivers:
@@ -416,8 +420,6 @@ def build_tracer(name, task, loader=None, hostname=None, store_errors=True,
 
 
                 # -* POST *-
                 # -* POST *-
                 if state not in IGNORE_STATES:
                 if state not in IGNORE_STATES:
-                    if task_request.chord:
-                        on_chord_part_return(task, state, R)
                     if task_after_return:
                     if task_after_return:
                         task_after_return(
                         task_after_return(
                             state, retval, uuid, args, kwargs, None,
                             state, retval, uuid, args, kwargs, None,