Pour un projet j’utilise de façon assez intensive cURL multi dans mes scripts et je me suis rendu compte qu’il me prennait quasiment 100% de mon cpu.
// Préparation des handles cURL do { curl_multi_exec($mh, $running); }while($running>0); // Traitement des requetes
C’est biensûr la boucle do … while qui est en cause ici.
Pourtant il y a une méthode simple pour indiquer à cURL d’attendre tant qu’il y a de l’activité sur un handle. Méthode que je ne connaissais pas et que voici :
Il suffit d’utiliser curl_multi_select()
// Préparation des handles cURL do { curl_multi_exec($mh, $running); $ready = curl_multi_select($mh); }while($running>0 && $ready!=-1); // Traitement des requetes
C’est tout, mon script est passé de 100% de charge à environ 2%.
Développement Web Libre 

0 commentaire ↓
Il n'y a aucun commentaire
Laisser un commentaire