我有4个API,我想在具有16GB RAM和8个CPU的AWS盒子上并行运行。我可以使用python的Flask并行运行这些API吗?
基本上,我希望其中一个API接受用户输入,然后并行查询其他3个API。
我是API和并行处理范例的新手,因此任何形式的帮助都将受到高度赞赏。
以下是我的想法:
import requests
r1 = requests.get(url_of_api1, data).json()
r2 = requests.get(url_of_api2, data).json()
r3 = requests.get(url_of_api3, data).json()
我想要并行查询r1,r2和r3而不是一个接一个地查询。怎么办呢?
答案 0 :(得分:1)
这可能是使用线程的并行代码。
import requests
import concurrent.futures
t = concurrent.futures.ThreadPoolExecutor(3) # 3 is the number of threads
get_json_from_url = lambda url: requests.get(url, data).json()
r1, r2, r3 = t.map(get_json_from_url, [url_of_api1, url_of_api2, url_of_api3])