如何限制cURL使用的并发连接
问题描述:
我使用PHP(和cURL)创建了一个简单的网络爬虫。它解析60,000个html页面并检索产品信息(它是Intranet上的工具)。如何限制cURL使用的并发连接
我主要关心的是并发连接。我想限制连接数量,所以无论发生什么事情,爬虫都不会使用超过15个并发连接。
服务器在IP达到25个并发连接的限制时阻塞IP,由于某种原因,我无法在服务器端更改它,所以我必须找到一种方法让我的脚本永远不会使用更多比X并发连接。
这可能吗?
或者我应该用另一种语言重写整个事物?
谢谢,任何帮助表示赞赏!
答
那么你可以使用curl_set_opt(CURLOPT_MAXCONNECTS, 15);
来限制连接数。但是,如果这不适合你,你可能还想做一个简单的连接管理器。
答
也许写一个简单的连接表:
target_IP | active_connections
1.2.3.4 10
4.5.6.7 5
每个卷曲通话将增加连接的数量,每个接近减少它。
您可以将该表存储在mySQL表中,或者将该表存储在速度为Memcache。
当您遇到已拥有最大连接数的IP时,您必须实施“稍后尝试”队列。
我不知道我是否应该感到放松,或彻头彻尾的愚蠢!我不知道这个选项,但我仍然发誓我不止一次阅读所有cURL文档!没关系,我会发布我的结果。多谢了朋友! – josephdotca 2010-02-09 21:53:27