如何在事件循环中优先执行任务

时间:2019-03-27 18:20:06

标签: python-3.x python-asyncio

我有一组协程,它们在有效载荷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做到这一点?

0 个答案:

没有答案