Explorar el Código

Fix issue #2225

Creating a chord no longer results in "TypeError: group object got
multiple values for keyword argument 'task_id'".  Chords now
complete without hanging.
Aneil Mallavarapu hace 10 años
padre
commit
3d00cc63c5
Se han modificado 2 ficheros con 6 adiciones y 1 borrados
  1. 1 0
      celery/app/amqp.py
  2. 5 1
      celery/backends/base.py

+ 1 - 0
celery/app/amqp.py

@@ -371,6 +371,7 @@ class AMQP(object):
                 'id': task_id,
                 'args': args,
                 'kwargs': kwargs,
+                'group': group_id,
                 'retries': retries,
                 'eta': eta,
                 'expires': expires,

+ 5 - 1
celery/backends/base.py

@@ -534,7 +534,11 @@ class KeyValueStoreBackend(BaseBackend):
     def _apply_chord_incr(self, header, partial_args, group_id, body,
                           result=None, options={}, **kwargs):
         self.save_group(group_id, self.app.GroupResult(group_id, result))
-        return header(*partial_args, task_id=group_id, **options or {})
+
+        fixed_options = dict((k,v) for k,v in options.items() if k != 'task_id')
+
+        return header(*partial_args, task_id=group_id, **fixed_options or {})
+
 
     def on_chord_part_return(self, task, state, result, propagate=None):
         if not self.implements_incr: