begin process at 2012 02 13 07:07:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Execution d'un script en arrière-plan


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Execution d'un script en arrière-plan

lundi 7 mars 2005 à 10:31:50 | Execution d'un script en arrière-plan

ZeroCool007

Salut,

Je cherche à éxécuter un script php en arrière-plan pour ne pas bloquer l'utilisateur dans la navigation.

Il s'agit d'un script php dont l'exécution est relativement longue, et je ne peux pas me permettre de bloquer l'utilisateur durant cette période. Il s'exécute sur un serveur Unix auquel j'ai totalement accès.

J'ai déjà testé les commandes "nohup" - pour me détacher du terminal et que le script s'exécute même en cas de déconnexion de l'utilisateur - et "&" - pour exécuter en arrière-plan. Ce principe fonctionne très bien sur le serveur en ligne de commande, mais pas du tout dans ma page php, je suis bloqué jusqu'à la fin de l'exécution de mon script.

Si quelqu'un à une petite idée, il est le bienvenu ici.....

Merci d'avance
lundi 7 mars 2005 à 15:08:39 | Re : Execution d'un script en arrière-plan

Viper31

Alors , ce que tu peux faire est d'effectuer une execution de script php en ligne de commande alors tu as plusieurs solution :

sois tu lance la commande : php mon_script.php
sois tu modifies ton script php pour qu'il soit lui meme executable en rajoutant en entete du fichier :
#!/usr/bin/php
<?php ... blablabla

mais si tu fais ca , tu devra changer les droit du fichiers pour qu'il soit executable :
chmod 775 mon_script.php ou un truc dans le style
et apres tu peux le lancer en faisant ./mon_script.php (comme un script shell quoi)

une fois que tu as fait ca ; tu as plus qu'a rajouter la commande en crontab pour que le script s'execute automatiquement tout seul (precision max : la minute).

par contre le souci , c'est que si l'execution est longue , le serveur soufrira quand meme d'une perte significative de performance qui impactera l'utilisateur malgres tes efforts .... donc tu peux peut etre faire en sorte de découper ta tache , en plusieurs petites taches que tu fera a different moment ...

autre chose , si ce script renvoit des chose par echo , essaye de faire en sorte de ne pas les afficher si tu l'execute par crontab , car sinon , tu recevra la sortie du script (les echos) par mail dans ta boite utilisateur ^^ ca risque de devenir genant au bout d'un moment :)...
Mais si tu veux avoir les resultats de l'execution de ce script , alors laisse faire , ca sera parfait!
voila !! j'espere avoir répondu a ta question ....
lundi 7 mars 2005 à 15:42:43 | Re : Execution d'un script en arrière-plan

ZeroCool007

Merci pour ta réponse, mais j'ai déjà mis en entete la ligne #!/usr/bin/php et ca ne change rien à mon problème.

J'ai également pensé au crontab, l'ennui c'est que c'est l'utilisateur qui, en cliquant sur un bouton, déclenche l'exécution du script. Ensuite, il peut suivre dans la page (si elle s'affiche, quand le script ne bloquera plus tout...) la progression de l'exécution du script sur une barre progression.
Tout fonctionne bien, j'ai déjà testé avec 2 pages une qui lance le script (et qui se bloque) et sur l'autre je vois alors la progression.

Vu que c'est l'utilisateur qui lance le script à n'importe qule moment, le cron ne me parrait pas être la meilleure solution.

La perte de performance du serveur n'est pas un problème, vu qu'elle est "souhaitée", c'est l'utilisateur qui lance un processus, mais c'est surtout que la page ne reste pas bloquée...

Merci quand même de ton aide.


lundi 7 mars 2005 à 17:29:27 | Re : Execution d'un script en arrière-plan

Viper31

Humm dans ce cas la , je vois pas ... si ca avé pas été du php , je t'aurai repondu d'utiliser les threads :) , mais bon la , c'est assez chaud effectivement

lundi 7 mars 2005 à 18:13:31 | Re : Execution d'un script en arrière-plan

ZeroCool007

A parement le problème viendrai de session_start() que j'utilise au début de mon site. Et l'utilisation de session_write_close() avant d'exécuter la commande règlerai le problème.

Je vais encore faire quelques tests pour vérifier si c'est effectivement ça !

Merci encore


mardi 8 mars 2005 à 09:13:17 | Re : Execution d'un script en arrière-plan

ZeroCool007

Réponse acceptée !
Effectivement, j'ai mis un session_write_close(); avant de faire exec(commande), et je ne suis pas bloqué. En fait ce n'est pas le script qui devait bloquer en lui-même, mais je ne sais pas encore trop quoi....

Merci pour tout





Cette discussion est classée dans : script, plan, php, utilisateur, execution


Répondre à ce message

Sujets en rapport avec ce message

Lancer un php en arriere plan [ par DevelMan ] Bonjour,Je voudrais lancer l'execution d'un php en arriere plan que mon programme principal continue a se derouler pendant ce temps.J'ai essaye ce bou Script en arriere plan aprés execution [ par DiJiTooL ] Bonjour,J'ai un server apache php avec tout les droits.Lorsque mon php s'execute, il va faire quelque verification dans la base de donnée puis se conn Empecher l'execution de scripts dans un repertoire sous Apache [ par hvb ] Salut tout le monde,encore une fois je viens avec un problème, non pas de php, mais de configuration serveur.En effet, je me demandais si il etait pos Chat PHP : déconnexion d'utilisateur [ par mouahaha ] Salut à tous... Je suis en train de programmer un petit chat en php/sql, et je me retrouve face à un problème de taille : quand les utilisateurs ferme script d'ajout utilisateur LDAP en php [ par eraclesnxf ] script d'ajout utilisateur LDAP en php [ par eraclesnxf ] bonjour a tous, je suis entraint de creer un script qui va me permetre d'ajouter des users dans ma base ldap voici mon code <?php // on recupere le script d'ajout utilisateur LDAP en php [ par wes88 ] bonjour!!,s'il vous plait je suis entain de chercher un BON script PHP qui saire a la creation des utilisateur d'un serveur LDAP !! MERCI Aidez moi à mettre un forumulaire à ce script [ par MoulouD1993 ] [code=php] <?php if($fp = fopen("http://www.site.com/fichier.zip","rb")) { if($pointer = fopen("./fichier.zip","wb+")) { while($buff Script de décompression BZ2 pour PHP [ par Dacobah ] Bonjour à tous, je recherche à décompresser un fichier BZ2 via PHP. Je sais qu'il existe déjà une extension de php prévue pour ça (http://php.net/man script php qui enregistre les pages [ par abauser1 ] bonjour je suis débutant en php. je voudrai savoir comment accéder avec php a une url et enregistrer la page sous un nom et un emplacement qu'on chois


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales