PHP Parallel Curl リクエスト: 複数の JSON データ取得のパフォーマンスの向上
file_get_contents() を使用して複数の JSON データを取得する従来のアプローチでは時間がかかる場合があります- 逐次的な性質のため消費が激しい。この記事では、並列カール リクエストを使用したより効率的なソリューションを検討します。
指定されたコードは、URL のリストを順番に反復処理し、各 URL から JSON データを取得して配列に保存する、一般的なアプローチを示しています。 。ただし、この方法では、特に多数の URL を処理する場合にパフォーマンスが低下する可能性があります。
この問題を克服するには、マルチカール リクエストを活用できます。マルチカールは、複数のカールリクエストを同時に並列実行できるようにする技術です。このアプローチにより、次のリクエストを開始する前に各リクエストが完了するのを待つ必要がなくなり、プロセスが大幅に高速化されます。
提供されたコード スニペットは、マルチカール リクエストの実装を提供します。
$nodes = array($url1, $url2, $url3); $node_count = count($nodes); $curl_arr = array(); $master = curl_multi_init(); for($i = 0; $i < $node_count; $i++) { $url =$nodes[$i]; $curl_arr[$i] = curl_init($url); curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($master, $curl_arr[$i]); } do { curl_multi_exec($master,$running); } while($running > 0); for($i = 0; $i < $node_count; $i++) { $results[] = curl_multi_getcontent ( $curl_arr[$i] ); } print_r($results);
要約すると、並列カールリクエストにより、異なる URL から複数の JSON データをフェッチする際のパフォーマンスが大幅に向上します。この手法は、リクエスト間の待機時間を最小限に抑え、データ取得の高速化につながるため、多数の URL を操作する場合に特に有益です。
以上が並列 Curl リクエストは複数の JSON データ取得のパフォーマンスをどのように向上させることができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。