У меня есть набор сопрограмм, которые агрегируют информацию по аргументам полезной нагрузки, но у меня возникла проблема, потому что другая сопрограмма зависит от выходных данных для агрегации. Как я могу указать, что одна сопрограмма должна запускаться после завершения других?
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()
Проблема заключается в том, что routing_item1 и routing_item2 нуждаются в данных args, которые агрегируются, когда агрегация_item1 и aggregation_item2 завершены. Поэтому мне нужно запустить задачу маршрутизации после завершения задачи агрегации, как я могу сделать это в моем контексте, используя asyncio?