我有一组协程,它们在有效载荷args上聚合信息,但是我有一个问题,因为另一个协程取决于聚合的输出。我如何指定一个协程需要在其他协程完成之后运行?
async def connect(self, args):
pipe_items = asyncio.gather(
asyncio.ensure_future(agreggation_item1.call(args)),
asyncio.ensure_future(agreggation_item2.call(args)),
asyncio.ensure_future(routing_item1.call(args)),
asyncio.ensure_future(routing_item2.call(args))
)
return asyncio.gather(pipe_items)
def run(self, data_in):
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(self.connect(data_in))
finally:
loop.close()
问题在于,aggregate_item1和aggregation_item2完成后,args数据中需要routing_item1和routing_item2。所以我需要在完成聚合任务之后运行路由任务,如何在我的上下文中使用asyncio做到这一点?