Précédent   Forum des professionnels en informatique > PHP > Outils
Outils Forum d'entraide sur les outils pour développeurs PHP : EDI, installation, administration... Avant de poster : FAQ outils, toutes les FAQ PHP et les comparatifs
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 18/10/2006, 01h13   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 3
Points : 1
Points : 1
Par défaut Exécuter script PHP en tâche de fond

Bonjour,

je voulais savoir si quelqu'un a une idee pour resoudre mon probleme.
Je m'explique, je voudrai a la fin d'un upload sur un site faire un traitement sur le fichier (video) uploade a l'aide de ffmpeg.
Par contre le traitement est assez long et plusieurs process a faire a la suite (encoder en flv, recuperer image de debut de la video, ajouter metas avec flvtool2, mettre a jour bdd, ...).
Donc pour eviter que l'internaute soit bloque sur la page d upload, je voudrai donc que lorsque celui-ci est termine, recharger la page et que l'internaute puisse naviguer sur le site.
Dans un meme temps, lancer un script php en "tache de fond" avec la commande du style exec("/usr/bin/php monscript.php > /dev/null &") par exemple, mais ne suis pas sur d utiliser la bonne methode.
Le probleme est que j'ai besoin de faire passer dans ce script en tache de fond des params de mon fichier parent (comme userid, filename, etc...)
Quelqu'un saurait-il si c'est faisable et si oui comment? Je cherche depuis un moment mais ne vois pas trop comment faire... Peut etre ajax...
Mon site est heberge en test chez moi pour l instant sur server ubuntu dapper drake php4 mysql5.
Si vous avez des exemples ce serait vraiment bienvenu.
Merci d'avance pour votre aide.
guiguibcn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 06h53   #2
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 638
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 638
Points : 690
Points : 690
Pour executer une script php en tache de fond :
Code :
/usr/bin/php script.php &
Ca marche aussi simplement que cela chez moi ...
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 09h10   #3
Membre habitué
 
Avatar de SOAD08
 
Inscription : juillet 2004
Messages : 101
Détails du profil
Informations personnelles :
Âge : 23

Informations forums :
Inscription : juillet 2004
Messages : 101
Points : 104
Points : 104
Envoyer un message via MSN à SOAD08 Envoyer un message via Skype™ à SOAD08
Pour ce qui est de la récuperation des variables, tu peux les placer dans un fichier mais c'est pas très propre.
SOAD08 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 12h19   #4
Invité de passage
 
Inscription : octobre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 3
Points : 1
Points : 1
Pour la recuperation des variables, je pensai ajouter un flag dans la table ou sont inserees les datas et en lancant le script en tache de fond recup la ligne avec le flag a 0 et faire le traitement puis changer l etat du flag lorsque tout s est bien deroule. Vous en pensez quoi?
Le probleme c est si plusieurs upload se terminent en meme temps, je ne sais pas trop comment cela peut reagir...
guiguibcn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 12h30   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 776
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 776
Points : 1 663
Points : 1 663
Salut,
pour passer des arguments à ton script tu peux faire ceci :

php script.php etert tutyuty

et dans ton script :

Code :
1
2
echo $argv[1]; // donne etert 
echo $argv[2]; // donne tutyuty
Donc un truc du style avec le exec :

Code :
exec("/usr/bin/php monscript.php ".$var1." ".$var2." &");
Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2006, 20h51   #6
Invité de passage
 
Inscription : octobre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 3
Points : 1
Points : 1
Merci Djakisback c exactement ce que je recherchais, cela fonctionne parfaitement en mettant
Code :
exec("/usr/bin/php monscript.php ".$var1." ".$var2." > /dev/null &")
Sans > /dev/null, j ai toujours le sablier qui est active.

Encore merci
guiguibcn est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 01h21.


 
 
 
 
Partenaires

Hébergement Web