私は cURL を使用して、データベースに保存されている 20,000 を超えるドメイン名のランク データを取得しています。
私が使用しているコードはhttp://semlabs.co.uk/journal/object-directional-curl-class-with-multi-threadingです。
配列 $competeRequests は、ウェブサイト ランク用の compet.com API への 20,000 リクエストです。
これはリクエストの例です: 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 分以上かかることがあります。