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
Merci car je ne vois pas comment
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++;
}
}
Aucun commentaire:
Enregistrer un commentaire