我正在通过WSGI提供 python 脚本。该脚本通过urllib访问 Web 资源,计算资源,然后返回一个值。
问题是urllib 似乎没有处理对精确 URL 的许多并发请求。
一旦请求达到 30 个并发请求,请求就会慢到爬行!:(
帮助将不胜感激!:D
我正在通过WSGI提供 python 脚本。该脚本通过urllib访问 Web 资源,计算资源,然后返回一个值。
问题是urllib 似乎没有处理对精确 URL 的许多并发请求。
一旦请求达到 30 个并发请求,请求就会慢到爬行!:(
帮助将不胜感激!:D
是的,urllib
不做太多的并发。每次你urlopen
,它都必须建立连接,发送 HTTP 请求,并从响应中获取状态码和标头(并可能从那里处理重定向)。因此,尽管您可以按照自己的节奏阅读响应正文,但请求的大部分等待时间已经发生。
如果您需要更多的并发性,您可能不得不选择某种异步网络 IO 工具(例如,Eventlet似乎在其首页上有一个合适的示例),或者只是urlopen
在其自己的线程中启动每个工具。