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

Tomcat et TomEE Java Discussion :

[Tomcat][sleep]De la bonne utilisation du sleep??


Sujet :

Tomcat et TomEE Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [Tomcat][sleep]De la bonne utilisation du sleep??
    Bonjour à tous,


    J'ai une question sur la fonction Thread.sleep(ms).

    Dans un (une?, je ne saurais jamais si c'est masculin ou féminin ) servlet, je fais appel à une méthode externe, appelons-la methode_externe()
    Malheureusement, cette méthode présente des bugs, et en attendant la mise à jour de l'éditeur, je dois trouver une solution de remplacement...
    En fait, la méthode prend du temps, beaucoup trop même, pour retourner le résultat...
    Du coup, on m'a dit de "temporiser" le temps que la méthode retourne le résultat.
    Or, quand je fais un Thread.sleep(ms) dans le servlet, cela ne change rien.

    Du coup, je me demande, si le Thread.sleep(ms) "arrête" complètement le servlet, y compris la methode_externe() ???
    Si c'est le cas, comment faire pour laisser le temps à la méthode de retourner le résultat??
    J'ai tenté un while(i < 500){i++;} mais sans grand résultat...

    Exemple du code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int nb =-1;
    nb = objet.methode_externe(query, query2);
    Thread.sleep(500);// ou while (i<500){i++;}
    if (nb == -1){
    System.out.println("Erreur de la fonction methode_externe!!");
    return null;
    }else{
    if (nb==0){
    System.out.println("Aucun resultat trouvé!!");
    return null;
    }
    }
    Existe t-il une méthode permettant d'attendre xx ms dans un servlet sans "stopper" le servlet lui-même???

    Merci d'avance pour votre aide

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2002
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 108
    Points : 98
    Points
    98
    Par défaut
    Normalement, la méthode sleep de Thread stoppe bien la thread en question. A la sortie de la méthode Thread.sleep(n), la thread est arrêté au moins n ms.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Points : 92
    Points
    92
    Par défaut
    Ce que tu dois faire c'est faire de ta méthode externe un thread et le lancer depuis ta servlet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int nb =-1; 
    // lancement du thread contenant l'éxécution de ta méthode
    MonThread monThread = new MonThread();
    monThread.start();
    // attente, le temps qu'il faut (ça tourne en parallèle)
    this.sleep(500);
    if (nb == -1){ 
    System.out.println("Erreur de la fonction methode_externe!!"); 
    return null; 
    }else{ 
    if (nb==0){ 
    System.out.println("Aucun resultat trouvé!!"); 
    return null; 
    } 
    }
    Le thread ressemble à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class MonThread extends Thread {
        public MonThread() {}
        public void run() {
            nb = objet.methode_externe(query, query2); 
        }
    }
    Bon courage
    Steph

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ok, merci pour l'astuce, je la met de côté celle-là
    Mais, je n'aurais pas à l'essayer car l'éditeur a "réparé" la méthode qui fonctionne du tonnerre maintenant
    Plus besoin de créer de Thread

    Je n'aurais certainement pas l'occasion de tester ton code mais, si j'ai 5min, je le ferais.

    En tout cas, merci à vous 2 :-)

    Thomas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de sleep ou de timer ?
    Par victorienv dans le forum Débuter
    Réponses: 7
    Dernier message: 16/04/2015, 09h30
  2. Bonne pratique Thread.sleep()
    Par 0viking0 dans le forum C#
    Réponses: 4
    Dernier message: 21/11/2012, 15h54
  3. utilisation de sleep
    Par luciendorali dans le forum Général Python
    Réponses: 3
    Dernier message: 30/07/2011, 09h37
  4. Réponses: 2
    Dernier message: 10/04/2008, 21h36
  5. La bonne utilisation de TIBTransaction
    Par jibe74 dans le forum Connexion aux bases de données
    Réponses: 15
    Dernier message: 29/01/2005, 16h18

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