我正在尝试同时调用~300个API调用,这样我最多可以在几秒内得到结果.
我的伪代码看起来像这样:
def function_1():
colors = ['yellow', 'green', 'blue', + ~300 other ones]
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
res = loop.run_until_complete(get_color_info(colors))
async def get_color_info(colors):
loop = asyncio.get_event_loop()
responses = []
for color in colors:
print("getting color")
url = "https://api.com/{}/".format(color)
data = loop.run_in_executor(None, requests.get, url)
r = await data
responses.append(r.json())
return responses
Run Code Online (Sandbox Code Playgroud)
这样做我getting color每隔一秒左右打印一次,代码需要永远,所以我很确定它们不会同时运行.我究竟做错了什么?