我正在通过WSGI提供Python脚本服务。该脚本通过urllib访问Web资源,计算资源并返回值。
问题在于,urllib似乎无法处理对特定URL的多个并发请求。
一旦请求数量增加到30个并发请求,请求速度就会变得非常慢! :(
非常感谢您的帮助! :D
问题在于,urllib似乎无法处理对特定URL的多个并发请求。
一旦请求数量增加到30个并发请求,请求速度就会变得非常慢! :(
非常感谢您的帮助! :D
是的,urllib
不支持并发。每次使用 urlopen
,都需要建立连接、发送 HTTP 请求,并从响应中获取状态码和头部信息(可能还要处理重定向)。因此,尽管您可以按自己的节奏读取响应正文,但请求的大部分等待时间已经过去了。
如果您需要更高的并发性,可能需要选择一些异步网络 IO 工具(例如:Eventlet 在其首页上有一个合适的示例),或者启动每个 urlopen
在自己的线程中运行。