Python 未调用动态创建的组的Chord

Python 未调用动态创建的组的Chord,python,celery,celery-task,chord,Python,Celery,Celery Task,Chord,最近发现了芹菜的任务。更换并试图利用它的力量我遇到了一个令人困惑的情况,根据芹菜的文档(以及各种各样的拉动请求/互联网上的问题),这应该是可行的。 假设我有以下代码: from celery import Celery, group app = Celery(broker='pyamqp://', backend='redis://localhost:6379/0') @app.task def to_char(seq): return map(chr, seq) @app.task

最近发现了芹菜的
任务。更换
并试图利用它的力量我遇到了一个令人困惑的情况,根据芹菜的文档(以及各种各样的拉动请求/互联网上的问题),这应该是可行的。
假设我有以下代码:

from celery import Celery, group
app = Celery(broker='pyamqp://', backend='redis://localhost:6379/0')

@app.task
def to_char(seq):
    return map(chr, seq)

@app.task
def flatten(seqs):
    final = list()
    for seq in seqs:
        final.extend(seq)
    return final

@app.task(bind=True)
def combine(self):
    sig = group([to_char.s([97]), to_char.s([98, 98])]) | flatten.s()
    raise self.replace(sig)
显然,我简化了一点问题,但即使在这个简单的情况下,当我调用
combine.delay().get()
时,我也希望收到
[a,b,b]

get()
的调用没有得到结果,而是无限期地挂起并查看工作日志-我可以看到对
到\u char
的两个调用都被接收并成功完成,但没有对
flatten
的调用

当我尝试单独执行它时(例如在Python控制台中),它会工作并返回预期结果,因此问题肯定出在我对
任务机制的理解上。替换

g = group([to_char.s([97]), to_char.s([98, 98])])
c = g | flatten.s()
c.delay().get() # -> [a, b, b]
非常感谢任何能对这个问题有所帮助的人