3

我可以一次使用多个线程快速下载多个文件,但问题是几分钟后它会逐渐减慢到几乎完全停止,我不知道为什么。我可以看到我的代码没有任何问题,而且我的 RAM/CPU 很好。我唯一能想到的是 urllib2 没有正确处理大量连接。如果有帮助,我正在使用代理,但没有它们我也遇到了这个问题。有没有人对此问题有任何建议或见解?谢谢!

4

2 回答 2

3

您能否确认在没有 python 的情况下进行相同数量的同时下载继续快速下载?也许问题不在于您的代码,而在于您的连接受到限制或与提供文件的站点有关。

如果这不是问题,您可以尝试使用pyprocessing库来实现多进程版本而不是多线程版本。如果您使用的是 python 2.6 pyprocessing 作为multiprocessing包含在发行版中。将线程代码转换为多进程代码非常容易,因此如果只是确认问题出在线程上,则值得一试。

于 2009-10-31T16:27:51.420 回答
1

就像建议的另一个答案一样,问题可能出在您的连接或提供文件的站点上。如果您可以在本地测试服务器上运行您的代码,那么您将能够消除这种情况。

如果在使用测试服务器时问题消失了,那么问题出在您的连接或远程服务器上。

如果在使用测试服务器时问题仍然存在,那么它最类似于您的代码中的某些内容,但是您至少会拥有服务器日志,以便您更深入地了解正在发生的事情。

至于您可以探索的另一种途径,该线程建议使用 httplib2 而不是 urllib2。

于 2009-10-31T17:43:31.367 回答