在同一台服务器上并行运行API

时间:2015-07-16 03:27:02

标签: python api amazon-web-services parallel-processing

我有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而不是一个接一个地查询。怎么办呢?

1 个答案:

答案 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])