【发布时间】:2015-04-26 23:44:05
【问题描述】:
我正在尝试向 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)
【问题讨论】:
-
也许看看多线程。这是一个很好的起点:stackoverflow.com/questions/2846653/…
-
@Ryan 这无济于事 - 是服务器窒息。如果你想提高服务器性能,有很多方法可以做到——从研究缓存开始。如果数据不大(也可以在内存中提供帮助),那么没有理由在每次请求时都向数据库发送查询! (或根本......)
-
增加mysql连接超时值?当你发现它掉线时重新建立连接?在末尾批量插入而不是在每个结果中插入?
-
修改服务器,使其每个请求需要多个 ID,每个响应使用多个数据集进行回复。
-
%20 不是构建 url 时唯一应该处理的事情。
标签: python mysql performance api