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 :

[Débutant]Thread Tomcat journalier pb de sleep


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 117
    Points : 95
    Points
    95
    Par défaut [Débutant]Thread Tomcat journalier pb de sleep
    Bonjour,

    j'ai un soucis avec l'utilisation des objets gérant les dates/heures, j'aimerai lancer un thread tout les jours à une heure précise mais je n'arrive pas à calculer le sleep nécessaire lorsque l'on deploye l'application
    Exemple :
    -tout les jours à 3h lancer la tache A
    Je déploye à un instant T, je dois faire T-A ou A-T selon le cas mais je ne m'en sors pas...
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    public void run() {
    		boolean b;
    		while (continu) {
    			int i=0;
    			int j=0;
     
    			long iDelai=0;
     
    			Calendar oMaintenant=Calendar.getInstance();
    			String sAfficheMaintenant=oMaintenant.get(Calendar.HOUR_OF_DAY)+"h"+oMaintenant.get(Calendar.MINUTE)+"mn"+oMaintenant.get(Calendar.SECOND)+"s."+oMaintenant.get(Calendar.MILLISECOND)+"ms.";
     
    			int iHeureMaintenant=oMaintenant.get(Calendar.HOUR_OF_DAY);
    			int iMinuteMaintenant=oMaintenant.get(Calendar.MINUTE);
    			System.out.println(sAfficheMaintenant);
     
    //Demarrage à 3h du matin
    			int HeureDemarrage=15;
    			int MinuteDemarrage=12;
    			GregorianCalendar gc=new GregorianCalendar();
    			gc.add(Calendar.HOUR_OF_DAY,HeureDemarrage);
    			gc.add(Calendar.MINUTE,MinuteDemarrage);
     
    			Log.logger.error("Heure de demarage" +gc.toString());
    			Log.logger.error("Heure actuel" +oMaintenant.toString());
    			Log.logger.error(gc.getTimeInMillis()+" < "+oMaintenant.getTimeInMillis());
    			if(gc.getTimeInMillis()<oMaintenant.getTimeInMillis()){
    				iDelai=oMaintenant.getTimeInMillis()-gc.getTimeInMillis();
    			}else{
    				iDelai=gc.getTimeInMillis()-oMaintenant.getTimeInMillis();
    			}
     
    			Log.logger.error("Je dors "+iDelai);
    			try {
    				Thread.sleep(iDelai);
     
    			} catch (InterruptedException e2) {
    				// TODO Auto-generated catch block
    				//			e2.printStackTrace();
    			}
    //ici le traitement....

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 117
    Points : 95
    Points
    95
    Par défaut
    Je réponds à mon propre post ça peut aider les débutants comme moi
    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
    16
    17
    18
    19
    20
    21
    22
    long iDelai=0;
     
     
    			GregorianCalendar gcMaintenant=new GregorianCalendar();
     
    			//Demarrage à 3h du matin
    			int HeureDemarrage=3;
    			int MinuteDemarrage=0;
    			GregorianCalendar gc=new GregorianCalendar();
    			gc.set(Calendar.HOUR_OF_DAY,HeureDemarrage);
    			gc.set(Calendar.MINUTE,MinuteDemarrage);
    			gc.set(Calendar.SECOND,0);
    			gc.set(Calendar.MILLISECOND,0);
     
     
    			if(gcMaintenant.after(gc)){
    				gc.add(Calendar.DAY_OF_MONTH,1);
    			}
     
    			iDelai=gc.getTimeInMillis()-gcMaintenant.getTimeInMillis();
    			try {
    				Thread.sleep(iDelai);

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

Discussions similaires

  1. [Débutant][Thread] Comment lancer en boucle un affichage
    Par comme de bien entendu dans le forum Général Java
    Réponses: 6
    Dernier message: 03/02/2006, 10h20
  2. [Débutante][Servlet] Tomcat 5.5
    Par kennie77 dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 14/11/2005, 12h27
  3. [Débutant] [Thread] Faire patienter un programme java....
    Par yoxx dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 25/09/2005, 12h36
  4. [débutant] thread et TMediaPlayer
    Par Tymk dans le forum C++Builder
    Réponses: 5
    Dernier message: 15/01/2005, 14h06
  5. [TOMCAT] [THREAD] Ajout d'un thread à Tomcat
    Par olivangel dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 12/08/2004, 11h55

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