我正在使用cURL来获取我存储在数据库中的20,000多个域名的一些排名数据.
我正在使用的代码是http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading.
数组$competRequests是20,000个网站排名的compet.com api请求.
这是一个示例请求:
http://apps.compete.com/sites/stackoverflow.com/trended/rank/?apikey=xxxx&start_date=201207&end_date=201208&jsonp=\” ;
由于有20,000个这样的请求,我想将它们分解成块,所以我使用以下代码来实现这一点:
foreach(array_chunk($competeRequests,1000) as $requests) { foreach($requests as $request) { $curl->addSession( $request,$opts ); } }
这适用于以1,000个批量发送请求,但脚本执行时间太长.我已将max_execution_time增加到10分钟以上.
有没有办法从我的阵列发送1,000个请求然后解析结果然后输出状态更新然后继续下一个1,000直到数组为空?截至目前,屏幕在脚本执行的整个时间内都保持白色,可能超过10分钟.
这个总是为我做的工作……
https://github.com/petewarden/ParallelCurl