Liste d'attente en php ! Comment faire?

Résolu/Fermé
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 - 24 avril 2013 à 15:23
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 25 avril 2013 à 14:46
Bonjour,

Je suis en stage et on me demande de créer une interface web pour exécuter un de leur programme. Cette interface se compose d'un formulaire et d'une page qui récupère les infos du formulaire qui sont passés en argument lors de l'exécution du programme. Enfin bon, je l'ai créer et j'ai réussi à exécuter le programme, à récupérer les fichiers résultats et de les rendre téléchargable.

Mais le problème c'est qu'une personne à la fois peut exécuter leur programme car à la fin on efface les données. Du coup, si plus d'une personne l'utiliser, ils peuvent prendre les données des autres ou les supprimer voir les deux.

Du coup, mon maitre de stage m'a demandé de faire une liste d'attente pour exécuter leur programme. Mais je n'ai pas la moindre idée de comment faire en php (même dans un autre language d'ailleurs ^^). Je ne sais même pas vers quoi je pourrais me diriger pour m'aider.

Quelqu'un peut m'aider et me conseiller s'il vous plait ! J'ai vraiment aucune idée.

Merci d'avance ! =)
A voir également:

13 réponses

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 15:45
Salut !

As tu accès au statut du programme ? (récupérer si le programme est en cours d'execution ou non)
Ou si tu sais cb de temps il met pour s'executer ?
0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 16:01
Je peut pas savoir combien de temps il met. Sa dépend de ce que le visiteur choisit comme option dans mon formulaire et du nombre de fichier qui souhaite que le programme traite.

Je sais pas s'il y a un moyen de savoir pour l'exécution du programme. Mais j'ai un affichage de ce genre sur ma page qui traite les infos du formulaire et qui exécute le programme:
"Tous les éléments du formulaire sont valide. Lancement du programme!"
"[...] //texte qui se génère automatique par le programme qui montre son avancé"
"Exécution du programme terminé !".

Sa peut aider ou pas?
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 16:22
Oui sa peut !
Mais, est-ce que tu as accès à ce programme ?
0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 16:24
oui je peux y accéder il est dans un dossier sur l'ordinateur que j'utilise.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 16:25
pour être plus précis, il se situe dans le même dossier que mes deux pages php
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 16:30
Ok donc tu peux ouvrir le fichier, cool ! C'est du php ?

0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 16:37
Oui je peux l'ouvrir.
Mes 2 pages sont en php (formulaire + traitementInfo/ExecutionProgramme)
Mais le script du programme est en shell. Dans ce script, on lance automatique un autre programme qui est écrit en R.
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 16:56
Ok ok.

Bah ce que je te propose, c'est un peu compliqué, je pense qu'il y a plus simple, mais jpense que ca peut marché :
C'est que juste avant de lancer ton programme (Donc je sais pas comment tu le lances depuis tes fichiers PHP après la validation du formulaire), tu vas faire un update sur un table en BDD
Une table du genre :
programme(estExecute(number)) avec 0 pour non et 1 pour oui
Donc quand tu récupères ton formulaire en post, tu vas faire tes traitements, et avant de lancer ton programme, tu vas regardé ce champ.
"Select estExecute from programme"
Si c'est 0, tu fais un "update programme set estExecute=1" et tu lances le programme.
Si c'est 1, tu attends et tu reessaye après.

Par contre, pour remetre le champ à la fin du programme à 0, je sais pas trop ... peut être voir avec le "Exécution du programme terminé !" et le détecté avec jQuery et ensuite envoyé en AJAX comme quoi c'est fini et faire un update.

Ca peut être cool d'avoir un autre avis enfaite !
0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 17:01
ok je vois un peu près ce que sa doit faire.

Merci je vais essayer et je vous tiens au courant
0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 17:03
Au faite, j'utilise la fonction system() de php pour exécuter le programme.
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 17:08
Bah donc avant ca tu fais un update :)
0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
24 avril 2013 à 17:04
Bien sur, s'il y a d'autre idée je suis preneuse ! =)
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
24 avril 2013 à 17:09
Ouais moi aussi j'aimerais bien avoir d'autre avis :p
0
nonodu003 Messages postés 59 Date d'inscription jeudi 11 avril 2013 Statut Membre Dernière intervention 13 mai 2013 1
25 avril 2013 à 11:51
C'est bon, j'ai réussit à faire une liste d'attente.

Grâce à ton aide, j'ai eu l'idée de faire un peu comme tu l'as dit avec 0 et 1 sauf que je les ai écrit dans un fichier et non dans une BDD.
J'ouvre le fichier, je regarde la première ligne si c'est 0 ou 1. Si c'est 0, j'exécute ma page sans oublié d'écrire 1 sur la première ligne. A la fin, j'écrit 0 sur la première ligne. Si c'est 1, j'attend.

Voilà ! Encore merci pour ton aide =)
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
25 avril 2013 à 14:46
Oui dans un fichier ca revient au même :)

Derien :)
0