Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2813 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  demon en php ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

demon en php ?

n°1582815
z4v4th4
Posté le 05-07-2007 à 14:13:12  profilanswer
 

Bonjour,
 
J'ai actuellement une fonction de parsing appelée à chaque fois que j'appelle une page (php)... Ce que je n'arrive pas trop à me représenter, c'est la facon dont les choses se passent quand plusieurs utilisateurs (appli intranet) se connectent simultanément...
 
En gros, la fonction récupère séquentiellement des fichiers dans des répertoires différents, parse le fichier, intègre ou non les datas en database (mysql) en fonction de leur pertinence, puis déplace le fichier dans un répertoire de stockage apres traitement...
 
Je précise la question :  
si deux ou n utilisateurs appellent la page simultanément, comment ca se passe ? le premier appelle la fonction et les autres attendent que le traitement soit fini, ou il y a une parallélisation qui est faite ?
y a t il des risques de conflit lors de l'intégration en database ou mysql gere t il les requettes comme il faut ?
 
je précise que la page qui appelle la fonction de parsing sert aussi à afficher la contenu de la database (enfin une partie), 3000 fichiers environ peuvent être traités lors du premier appel de la journée (ce qui prend plus d'une minute de traitement pour intégration de tout ce petit monde, l'affichage est quant à lui beaucoup plus rapide)
 
si la question est bête ne riez pas SVP, je suis fatigué aujourd'hui  :D

mood
Publicité
Posté le 05-07-2007 à 14:13:12  profilanswer
 

n°1582859
mrbebert
Posté le 05-07-2007 à 15:49:08  profilanswer
 

Le serveur web va lancer un script pour chaque connexion. Donc, oui, tu risque d'avoir plusieurs traitements en parrallèle, avec des risques d'incohérence de données :D  
 
Pour la base, je ne pense pas que tu utilises de transactions, donc mysql va traiter les requêtes dans l'ordre d'arrivée.
Tu risque d'avoir une situation de ce type :
- script 1 lit le répertoire
- script 1 parse le fichier A et insère les données en base
- script 2 lit le répertoire
- script 2 parse le fichier A et insère les données en base (donc doublons)
- script 1 déplace le fichier A
- script 2 tente de déplacer le fichier A qui n'est plus là


Message édité par mrbebert le 05-07-2007 à 15:49:44
n°1582861
rufo
Pas me confondre avec Lycos!
Posté le 05-07-2007 à 15:56:38  profilanswer
 

par curiosité, quelle est la finalité de faire insérer dans la bd, sur une action d'un utilisateur, des enregistrements qui se trouvent dans des fichiers qui se trouvent déjà sur le serveur?  
Est-ce que par hasard, ça ne serait aps fiat pour pallier le pb que php ne bosse que sur demande d'un page web par un utilisateur? Si c'est le cas, peut-être que cron pourrait t'aider ;)

n°1582864
mrbebert
Posté le 05-07-2007 à 16:01:25  profilanswer
 

PHP fonctionne très bien en ligne de commande [:cosmoschtroumpf]

n°1582927
rufo
Pas me confondre avec Lycos!
Posté le 05-07-2007 à 17:38:37  profilanswer
 

mrbebert a écrit :

PHP fonctionne très bien en ligne de commande [:cosmoschtroumpf]


 
oui, d'où une facile exécution de scripts php commandés par cron ;)

n°1583531
z4v4th4
Posté le 07-07-2007 à 13:47:50  profilanswer
 

yep, j'ai répondu hier mais je pense que je n'étais pa authentifié car ma réponse n'a pas été postée (ce que je n'avais pas vu lol)  :sleep:  
 
donc je recommence :
 
en fait, mon "serveur apache/php" a été concu initialement comme une application de monitoring... en fait il s'agit d'une machine physique séparée de d' un serveur d'exploiatation (pour des raisons de charge/sécurité).
Je compte donc chercher toutes les 5 secondes (rafraichissement automatique de ma page php) les derniers fichiers recus sur lme serveur d'exploit, dans un répertoire partagé tout bêtement, je les parse puis les range dans un autre répertoire apres traitement...
ensuite la page php qui appelle la fonction de parsing affiche une interface ou l'utilisateur peut naviguer dans les infos contenues dans les fichiers parsés pour vérifier que tout est ok (infos recues en temps et en heure, dans le bon ordre ect...
je voudrais rendre ce système multi utilisateur pour que d'autres personnes puissent bénéficier du client (des chefs tout ca...)
 
j'ai bien une solution simple : une page unique pour l'exploitant, qui appelle la fonction de parsing et une page qui ne fait que de l'affichage... ou bien une page php différente qui ne fait que du parsing et du logging... mais c'est pas tres "propre"  :(  
 
alors je posais la question de threader l'appel de ma fonction de parsing... ou de la faire tourner en boucle sur le serveur indépendamment de la page d'affichage...
 
au pire je referais la fonction parsing en perl... mais ca représente pas mal de boulot... beaucoup de fichiers XML de types différents (8 ou 10 de mémoire)
 
je vais voir du coté de cron... mais il me semble que ca na marche que sous linux non ?
et mon "administrateur " est allergique à linux  :whistle:  
 
merci de votre attention en tout cas...
 
++

n°1583859
rufo
Pas me confondre avec Lycos!
Posté le 09-07-2007 à 09:35:14  profilanswer
 

sous windows, t'as l'équivalent "at" de cron...

n°1584020
z4v4th4
Posté le 09-07-2007 à 14:02:39  profilanswer
 

yep,
 
j'ai oublié de mentionner at dans mon message précédent... mais ca ne me convient pas car je ne peux pas répéter une action toutes les 5 secondes...
 
donc il fauit que je trouve une autre solution...  :heink:  
 
++
zav

n°1584126
rufo
Pas me confondre avec Lycos!
Posté le 09-07-2007 à 16:38:57  profilanswer
 

"at" ne permet pas de lancer une action toutes les 5 secondes?

n°1584142
antac
..
Posté le 09-07-2007 à 17:07:34  profilanswer
 

Tu utilises l'interpréteur php lancé en mode ligne de commande, tu fais une boucle infinie qui traite ton action et hop

mood
Publicité
Posté le 09-07-2007 à 17:07:34  profilanswer
 

n°1584349
rufo
Pas me confondre avec Lycos!
Posté le 10-07-2007 à 09:00:34  profilanswer
 

pas tip-top une boucle infinie en php :/ Je reste convaincu que "at" est la commande qu'il faut utiliser : http://www.microsoft.com/resources [...] x?mfr=true

n°1584962
z4v4th4
Posté le 10-07-2007 à 20:32:19  profilanswer
 

rufo a écrit :

pas tip-top une boucle infinie en php :/ Je reste convaincu que "at" est la commande qu'il faut utiliser : http://www.microsoft.com/resources [...] x?mfr=true


 
yep...
 
Bin si j'ai bien compris la doc, on définit l'interval de répétition avec /every puis une heure avec heure
donc un seul lancement par jour maxi  :cry:  
 
pour la boucle infinie en php, je n'ais pas essayé... je tente et je vous tiens au courant...
 
merci,
 
zav


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  demon en php ?

 

Sujets relatifs
[Shell / C] Script shell en tant que démon ?[divers] Une histoire de mailer demon
Comment faire un démon sous Linux/unix?[SGBD]acceder au demon mysql de easyphp en ligne de commande?
[Unix/C/Knowledge:)] Demon en general, et mysql en particulier;)Démon sous Windows qui affiche une image si elle existe
Plus de sujets relatifs à : demon en php ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)