|
@@ -222,7 +222,7 @@ def add_group_task(app):
|
|
|
|
|
|
@shared_task
|
|
|
def add_chain_task(app):
|
|
|
- from celery.canvas import Signature, chord, group, maybe_signature
|
|
|
+ from celery.canvas import Signature, chain, chord, group, maybe_signature
|
|
|
_app = app
|
|
|
|
|
|
class Chain(app.Task):
|
|
@@ -244,7 +244,11 @@ def add_chain_task(app):
|
|
|
res = task.freeze()
|
|
|
i += 1
|
|
|
|
|
|
- if isinstance(task, group) and steps and \
|
|
|
+ if isinstance(task, chain):
|
|
|
+ # splice the chain
|
|
|
+ steps.extendleft(reversed(task.tasks))
|
|
|
+ continue
|
|
|
+ elif isinstance(task, group) and steps and \
|
|
|
not isinstance(steps[0], group):
|
|
|
# automatically upgrade group(..) | s to chord(group, s)
|
|
|
try:
|