Page 1 sur 1

Envoyer une requête sans attendre sa réponse

Posté : 05 janv. 2012, 22:48
par -mk-
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 :) !

Re: Envoyer une requête sans attendre sa réponse

Posté : 05 janv. 2012, 22:56
par Ryle
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 :)

Re: Envoyer une requête sans attendre sa réponse

Posté : 05 janv. 2012, 23:11
par -mk-
Ô ! 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 !

Re: Envoyer une requête sans attendre sa réponse

Posté : 05 janv. 2012, 23:51
par moogli
via des appels a des fonctions "system" pour faire un truc "multi thread"

avec par exemple la fonction exec

@+