OVH Cloud OVH Cloud

requette php non bloquante

4 réponses
Avatar
Bernard
bonjour a tous.

Sur mon site, je dois régulierement faire des requettes http avec mon script
php.

J'utilise la commande file(... mais il semble que cette commande est
bloquante jusqu'a ce que le site web vers la requette http est faite
réponde.

La réponse à ma requette ne m'interesse pas.

Y a t il un moyen, depuis mon site, d'envoyer ma requette http.... et de
continuer l'execution du script sans attendre que le site distant réponde à
la requette ?


Merci a tous.

4 réponses

Avatar
dwojylac.nospam
Bernard wrote:

bonjour a tous.
Bonjour


Sur mon site, je dois régulierement faire des requettes http avec mon script
php.
Régulièrement = ???


J'utilise la commande file(... mais il semble que cette commande est
bloquante jusqu'a ce que le site web vers la requette http est faite
réponde.

La réponse à ma requette ne m'interesse pas.
Tu peux préciser ?

Y a t il un moyen, depuis mon site, d'envoyer ma requette http.... et de
continuer l'execution du script sans attendre que le site distant réponde à
la requette ?


Utiliser fsockopen(...) avec un timeout petit (1 s) par exemple ?
http://fr.php.net/manual/fr/function.fsockopen.php

Mais tous les hébergements n'ont pas la bibliothèque CURL.

--
Dominique
http://wojylac.free.fr

Avatar
Jean-Charles Gibier
"Bernard" a écrit dans le message de news:

bonjour a tous.

Sur mon site, je dois régulierement faire des requettes http avec mon
script

php.

J'utilise la commande file(... mais il semble que cette commande est
bloquante jusqu'a ce que le site web vers la requette http est faite
réponde.

La réponse à ma requette ne m'interesse pas.


Curieux.



Y a t il un moyen, depuis mon site, d'envoyer ma requette http.... et de
continuer l'execution du script sans attendre que le site distant réponde
à

la requette ?




Il y a un moyen si le serveur n'est pas en safe-mode et si le systeme le
permet :

passthru ("nohup ./la_commande_qui_envoie_la_requete >& /dev/null &" );

Ici on n'a aucun moyen de savoir si la requête à repli son rôle :-/

Avatar
Julien Demoor
Bernard wrote:
bonjour a tous.

Sur mon site, je dois régulierement faire des requettes http avec mon script
php.

J'utilise la commande file(... mais il semble que cette commande est
bloquante jusqu'a ce que le site web vers la requette http est faite
réponde.

La réponse à ma requette ne m'interesse pas.

Y a t il un moyen, depuis mon site, d'envoyer ma requette http.... et de
continuer l'execution du script sans attendre que le site distant réponde à
la requette ?


Merci a tous.


Il n'y a pas de gestion des threads en php à ma connaissance donc non.
L'exécution d'une instruction ne se fait qu'après la fin de la précédente.
On peut contourner le problème via un petit hack mais je ne l'ai jamais
testé et ça dépend de la requête http que tu dois faire. S'il s'agit
d'appeler un autre script php, alors il faudrait mettre un tag img dans
la sortie html du premier script, l'attribut src pointant vers le second
script. Rendre l'image invisible avec les attributs width et height.
Eventuellement faire sortir une image depuis le script (en utilisant la
fonction header avant).

JD

Avatar
Thierry SCHMIT
La réponse à ma requette ne m'interesse pas.


si je comprends bien tu veux lancer un "script de maintenance"...

essaies d'utiliser exec ou system pour lancer un autre processus sur le
serveur
ledit processus étant alors lancé par la commande
php script.php