芹菜:和弦和合唱团无法正常工作

时间:2018-08-03 03:59:01

标签: python celery

我正在执行需要重用以前任务计算出的结果的相同任务。更具体地说,我有三个模型,分为两个步骤,第一步是清理并分割原始数据,第二个任务是两种不同类型的标记化。其中两个模型共享相同的标记器,而第三个模型则需要第二个标记器计算的结果。因此,我首先需要清理和分割原始输入,然后将这些原始输入中继到令牌生成器,并将其中一个令牌化的结果馈送到两个模型,而另一个将馈送到最后一个模型。最后,我需要合并结果。

但是,我似乎无法使任务正常运行。模型预测任务已运行,但不能全部传递给最后的合并任务。我只是简单地完成以下任务。

@app.route('test', methods = ['GET'])
def test():
   result = test_chain_group.delay(10)
   result = [v for v in result.collect()]

   return str(result)

@shared_task
def test_chain_group(num):
        header = [(add.s(5) | group([add.s(6), mul.s(9)])), (mul.s(5)|add.s(3))]
        chord_r = chord(header, aggr.s())
        chain_r = (add.s(7)|chord_r)
        result = chain_r(num)
        return result

@shared_task
def add(a,b):
        return a+b
@shared_task
def mul(a,b):
        return a*b

@shared_task
def aggr1(data):
    return data

尽管工作人员正确计算了28、198、88,但是只有28和198传递给了aggr1。而且flask应用程序没有等待返回结果再返回给客户端。

0 个答案:

没有答案