Maison  >  Article  >  développement back-end  >  Comment les requêtes Parallel Curl peuvent-elles améliorer les performances pour la récupération de plusieurs données JSON ?

Comment les requêtes Parallel Curl peuvent-elles améliorer les performances pour la récupération de plusieurs données JSON ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-12 14:20:01137parcourir

How Can Parallel Curl Requests Enhance Performance for Multiple JSON Data Retrieval?

Requêtes PHP Parallel Curl : amélioration des performances pour la récupération de plusieurs données JSON

Les approches conventionnelles pour récupérer plusieurs données JSON à l'aide de file_get_contents() peuvent prendre du temps -consommateur en raison de sa nature séquentielle. Dans cet article, nous explorons une solution plus efficace utilisant des requêtes curl parallèles.

Le code donné démontre une approche typique, parcourant séquentiellement une liste d'URL, récupérant les données JSON de chaque URL et les stockant dans un tableau. . Cependant, cette méthode peut nuire aux performances, en particulier lorsqu'il s'agit d'un nombre important d'URL.

Pour surmonter ce problème, nous pouvons exploiter les requêtes multi-curl. Le multi-curl est une technique qui permet l'exécution parallèle de plusieurs requêtes curl simultanément. Cette approche accélère considérablement le processus en éliminant le besoin d'attendre que chaque requête soit terminée avant de lancer la suivante.

L'extrait de code fourni offre une implémentation de requêtes multi-curl :

$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);

En résumé, les requêtes curl parallèles offrent une amélioration substantielle des performances pour récupérer plusieurs données JSON à partir de différentes URL. Cette technique est particulièrement bénéfique lorsque vous travaillez avec un grand nombre d'URL, car elle minimise le temps d'attente entre les requêtes, ce qui accélère la récupération des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn