Envoyer une requête sans attendre sa réponse

Petit nouveau ! | 4 Messages

05 janv. 2012, 22:48

Bonsoir à tous,
Voilà, j'aurais aimer savoir s'il était possible d’exécuter une requête se trouvant dans une URL différente sans attendre sa réponse.
Exemple ; Supposons deux fichiers PHP dans deux serveurs différents. Le premier appel le deuxième mais le deuxième devra effectuer un traitement qui durera plusieurs secondes. Serait-il possible que ce premier fichier appel le deuxième fichier, et dés que la connexion est établie, le premier fichier n'attend plus sa réponse et continue à exécuter le reste du code ?

D'avance merci :) !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 janv. 2012, 22:56

Il y a différentes possibilités pour lancer des traitements asynchrones en php :
- exec permet d'exécuter des lignes de commande. Si tu ajoutes un & à la fin de la commande que tu exécutes, tu peux la lancer en tâche de fond sans avoir à attendre le résultat.
- fsockopen permet d’initialiser une connexion par socket. Tu peux ensuite poster des données avec fwrite par exemple.
- curl_multi_init permet de lancer plusieurs traitements cURL en parallèle...

Sinon y a aussi ajax si tu veux le faire en javascript :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 4 Messages

05 janv. 2012, 23:11

Ô ! C'est exactement ce que je cherchais =D> ! Merci énormément Ryle.
Une dernière chose dans le même sujet ; y a t-il un moyen de lancer plusieurs traitements internes sans attendre la réponse du premier ? On va dire que j'ai une fonction que je dois exécuter dix fois (j'envoie des paramètres différents à chaque fois), et chaque appel prend un certain temps. Existerai t-il un moyen de les lancer les dix sans attendre la réponse des appels précédents ?

Merci encore !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 janv. 2012, 23:51

via des appels a des fonctions "system" pour faire un truc "multi thread"

avec par exemple la fonction exec

@+
Il en faut peu pour être heureux ......