Paralléliser du code PHP ?

WRInaute accro
Bonjour,

Je réalise de temps à autre des programmes PHP utilisant l'API de Google. Le problème de ce genre de programme, c'est qu'il passe un temps non négligeable à attendre que Google renvoie la réponse à la recherche faites. Donc, vu que chaque requête contient plusieurs appels à Google, le script PHP butte souvent sur un 'PHP Time Out'.

D'où je me demandais s'il était possible de faire plusieurs appels en même temps en PHP (paralléliser le code). De cette manière, plutôt que d'attendre n x temps_de_reponse_de_Google, je n'attendrais plus que 1 x temps_de_reponse_de_Google.

Merci pour vos réponses.
 
WRInaute discret
il ia des fonctions qui permettent de faire du multi-threads. Mais à mon avis, si tu n'es pas sur un dédié, ces fonctions ne te seront pas accessibles.
A mon avis une solution que tu devrais envisagé si tu fait beaucoup de requete sera l'utilisation de frame :/ (donc une page par frame)
A défault d'être la meilleure solution, elle est sans doute dans ton cas la plus adapté.
 
WRInaute passionné
mmm, là ça va être chaud...

Si PHP n'est pas en SAFE_MODE, tu peux toujours executer du PHP en shell, en tache de fond. Sinon, il y a la solution de faire tourner un autre script PHP via Apache, mais ce n'est pas très propre.

Sinon, une utilisation 100% Shell : http://www.php.net/manual/fr/ref.pcntl.php
 
WRInaute occasionnel
Ce que je fais généralement c'est générer une page avec des images de type img src=monscript.php?param=monthread
Ensuite pour synchroniser la fin des opérations je fais un body onload="javascript:location.href='mapagefinale.php'"
Cela déclenche donc N traitements en parallèle (asynchrone) mais reste un traitement synchrone global qui identifie la fin des traitements.
Ce n'est pas très français tout ça mais l'idée y est.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut