我可以很快地下载多个文件,同时下载多个线程,但问题是几分钟后,它往往会逐渐减慢,几乎完全停止,我不知道为什么。我的代码没有任何问题,我的RAM/CPU也很好。我能想到的唯一一件事是urllib2没有正确处理大量的连接。如果有帮助,我正在使用代理,但我在没有代理的情况下也遇到了这个问题。有没有人对这个问题有什么建议或见解?谢谢!
发布于 2009-10-31 16:27:51
您能确认在不使用python的情况下进行相同数量的同步下载会继续快速下载吗?也许问题不是出在你的代码上,而是你的连接被限制了,或者是提供文件的站点。
如果这不是问题所在,您可以尝试使用pyprocessing库来实现多进程版本,而不是多线程版本。如果您使用的是Python2.6,那么pyprocessing将作为multiprocessing包含在发行版中。将线程代码转换为多进程代码非常容易,因此如果只是确认问题出在线程上,那么值得一试。
发布于 2009-10-31 17:43:31
正如另一个答案所建议的,问题可能出在您的连接或提供文件服务的站点上。如果您可以在本地测试服务器上运行您的代码,那么您将能够消除这种情况。
如果使用测试服务器时问题消失了,那么问题出在您的连接或远程服务器上。
如果在使用测试服务器时问题仍然存在,那么很可能是代码中的某些内容,但这样您至少可以获得服务器日志,以便更深入地了解正在发生的事情。
至于您可以探索的另一种方法,this thread建议使用httplib2而不是urllib2。
https://stackoverflow.com/questions/1654721
复制相似问题