我正在尝试将asyncio与我拥有的方法一起使用,该方法需要一段时间才能运行。我想用稍微不同的输入多次调用同一个方法,我不在乎哪个调用首先完成,我只想在它们全部完成后收集所有结果(asyncio循环的主要候选对象,对吗?)。当我知道要调用我的方法多少次时,我一直在使用以下代码:
async def main():
loop = asyncio.get_event_loop()
future1 = loop.run_in_executor(None, myhttpreq, 'US')
future2 = loop.run_in_executor(None, myhttpreq, 'RU')
future3 = loop.run_in_executor(None, myhttpreq, 'CN')
response1 = await future1
response2 = await future2
response3 = await future3
print(response1)
print(response2)
print(response3)
从myhttpreq传递的参数可以看出,此方法花费如此长的时间是因为它调用了来自世界各地的EndPint。我的问题是:
假设我想打电话给的国家名单变化很大,我如何生成并等待可变数量的未来
我最终做了这样的事:
这看起来很愚蠢吗
相关问题 更多 >
编程相关推荐