Pages

[PHP 5.4] Comment mettre en place le mutlithreading curl sujet

vendredi 31 janvier 2014




Bonsoir,

Ci dessous une portion de mon script.
Il fonctionne mais de façon séquentielle.

J'aimerai pouvoir paralléliser les requetes.

Sachant que le premier appel de request_curl est pour charger une page (ou plusieurs pages) qui contient des liens sur d'autres pages

ensuite dans la boucle le second request_curl fait appel à ces pages pour ensuite les analyser aussi.

La limite est pour arrêter le mécanisme lorsqu'il y a un nombre identique d'entrée par rapport au contenu déjà existant dans la base.

Il y a 2 axes à paralléliser
- la page principale
- les pages secondaires

Code:


public function observer($limit=13){
                $ok = 1;
                $pageObs = 1;
                $cptOk = 0;

                while($ok && $cptOk < $limit){
                        $url = $this->lien_observer.$pageObs;

                        $content = $this->request_curl($url);

                        $resultObs=$this->extraitListeObjets($content);

                        $nbTabObs = count($resultObs);
               
                        $iObs=0;
                       
       
                        while($iObs < $nbTabObs && $cptOk < $limit){
                                        $url2 = $this->lien_objet.$resultObs[$iObs];
                               
                                $content = $this->request_curl($url2);
                                $resultObj=$this->controlePage($content,$url2,1);
                               
                               
                                if($resultObj == 0){
                                        $cptOk++;
                                }
                                else if($resultObj == 1){
                               
$cptOk=0 ;
                                }
                                $iObs++;
                                flush();
                                ob_flush();
                        }
                        if($cptOk >= $limit)
                                $ok = 0;
                        if($ok)
                                $pageObs++;
                }
        }


Merci car je ne vois pas comment




Aucun commentaire:

Enregistrer un commentaire