Python-1000-2000 API请求

Python-1000-2000 API请求,python,mysql,performance,api,Python,Mysql,Performance,Api,我正在尝试向API发出大量GET请求(1000到2000之间)。到目前为止,它需要超过5分钟,MySQL服务器刚刚关闭了我的连接 我正努力在不到一分钟内赶到。这应该是可能的吗 以下是我到目前为止的情况: def get_data(devices): for dev in devices: #array containing around 1000 devices model = str(dev[0]) brand = str(de

我正在尝试向API发出大量GET请求(1000到2000之间)。到目前为止,它需要超过5分钟,MySQL服务器刚刚关闭了我的连接

我正努力在不到一分钟内赶到。这应该是可能的吗

以下是我到目前为止的情况:

def get_data(devices):

        for dev in devices: #array containing around 1000 devices
            model = str(dev[0])
            brand = str(dev[1])    
            model = model.replace(" ", "%20")
            brand = brand.replace(" ","%20")

            os = urllib2.urlopen('https://api.com/getData?&brand=' + brand + '&model='+ model).read()
            xmldoc = minidom.parseString(os)

            for element in xmldoc.getElementsByTagName('name'):
                print (element.firstChild.nodeValue)

代码的瓶颈可能是网络I/O,如果您想更快地完成这项工作,可以尝试使用 自由党


我用它做了很多IP地址的跟踪路由,它比多线程更快。是一些帮助您启动的演示代码。

也许可以研究多线程。这里有一个很好的起点:@Ryan这不会有帮助的-是服务器阻塞了。如果您想提高服务器性能,有很多方法可以做到这一点——从研究缓存开始。如果数据不大(也称为内存帮助),则没有理由在每次请求时向数据库发送查询!(或者根本…)增加mysql连接超时值?当发现连接断开时,是否重新建立连接?在最后大容量插入而不是每个结果?修改服务器,使其在每个请求中使用多个ID,并在每个响应中使用多个数据集进行答复。%20不是构建url时应处理的唯一事项。