我正在执行需要重用以前任务计算出的结果的相同任务。更具体地说,我有三个模型,分为两个步骤,第一步是清理并分割原始数据,第二个任务是两种不同类型的标记化。其中两个模型共享相同的标记器,而第三个模型则需要第二个标记器计算的结果。因此,我首先需要清理和分割原始输入,然后将这些原始输入中继到令牌生成器,并将其中一个令牌化的结果馈送到两个模型,而另一个将馈送到最后一个模型。最后,我需要合并结果。
但是,我似乎无法使任务正常运行。模型预测任务已运行,但不能全部传递给最后的合并任务。我只是简单地完成以下任务。
@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应用程序没有等待返回结果再返回给客户端。