IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Processus en arriere plan


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut [Tableaux] Processus en arriere plan
    bonjour
    à la fin d'une tache qui dure 30min dans mon application php et MySQL, il se lance un processus en arrière plan qui fait la mise a jour des enregistrement d'une des table de la bd (requete de type Update)!
    ce processus me bloque toute l'application et je dois l'attendre jusqu'à ce qu'il finisse et il ne change rien dans la bd.

    voici son état quand je met "SHOW FULL PROCESSLIST" dans PHPMyAdmin
    ID USER SERVEUR COMMANDE ETAT
    190 root localhost Query Updating

    je veux supprimer ce processur et je n'arrive pas, mais c'est faisable a partir de PHPMyAdmin
    apres la suppression du process l'application continue normalement.
    pourriez vous me donner une solution en PHP pour intervenir ?
    Merci davance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Il me semble que dans PhpMyAdmin, il y a un bouton "Générer la source PHP" dès qu'on effectue un changement quelque part, n'y a-t-il pas de boutons dans le genre sur cette page?

  3. #3
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    vous voulez dire "créer la source php" ? c'est un lien et qui me donne just :
    $sql = 'SHOW FULL PROCESSLIST';
    c'est tout ce qu'il me donne.

  4. #4
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    j'ai découvert que le processus dont je vous ai parlé est inoossant !
    car j'ai arreté toute la tache par le bouton arreter et le process reste toujours en arriere plan !
    ok, il fait une tache de mise a jour, mais pourquoi quand je le supprime l'application continue normalement ?!

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Citation Envoyé par salrouge
    vous voulez dire "créer la source php" ? c'est un lien et qui me donne just :
    $sql = 'SHOW FULL PROCESSLIST';
    c'est tout ce qu'il me donne.

    Et en cliquant sur le lien juste après avoir killé le processus, ca donne rien de différent ?

  6. #6
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    non il affiche le meme code php

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    L'ID du processus est-il toujours 190?

    Edit : si il est toujours 190, essaie ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $sql = "KILL 190";
    $query_txt = query($sql) or die ("Erreur_txt 1 : ".mysql_error());
    Je ne sais pas si ca fonctionnera...

  8. #8
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Le code change dans chaque execution de l'application
    et même si on pourrait connaitre l'ID du process on ne peut plus intervenir ! car il ne commence qu'après avoir executé tout le code PHP !!!
    j'ai essayé déjà cette tentative avec le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $res=mysql_query("show full processlist");
    while($result=mysql_fetch_array($res))
    {
    	echo "lloking for process to kill <br>";
    	$proccessid=$result['Id'];
    	if($result['State']=='Updating')
    	{	
    		echo "process found, killing process<br>";	
    		mysql_query("kill $processid");	
    		break;
    	}	
    }
    ?>

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    et ca donne quoi ?

  10. #10
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    cela donne rien puique notre processus ne démarre qu'apres l'execution de ce code !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Par défaut
    Et si tu le mets au milieux de ton code ? (au moment ou le code commence a galérer, tu mets ca au milieux voir ce que ca donne...)

  12. #12
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    le processus que je veux supprimer ne commence qu'apres que celui du code php finisse ! et même dans la liste des process sur PHPMyAdmin je vois le processus de l'application en état de Sleep !
    Donc l'idée d'intervention par code ne marchera pas à mon avis

  13. #13
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    aucune idée a part le code ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2012, 22h33
  2. processus en arriere plan avec CreateProcess()
    Par evlan dans le forum Windows
    Réponses: 1
    Dernier message: 08/02/2007, 20h24
  3. Installer Interbase en arriere plan depuis delphi
    Par nanaalain dans le forum Bases de données
    Réponses: 9
    Dernier message: 24/11/2003, 15h18
  4. [MFC]arriere plan pour un objet de la classe CStatic
    Par gabriel knight dans le forum MFC
    Réponses: 13
    Dernier message: 28/07/2003, 11h42
  5. j'arrive pas a arreter mon thread d'arriere-plan
    Par ms91fr dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2003, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo