我正在使用 cURL 来获取存储在数据库中的 20,000 多个域名的排名数据。
我使用的代码是http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading。
数组 $competeRequests 是 20,000 个对网站排名的competition.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 分钟。