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

API standards et tierces Java Discussion :

Programmer une action à une heure définie


Sujet :

API standards et tierces Java

  1. #1
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut Programmer une action à une heure définie
    Bonjour,

    j'ai un petit point qui me coince dans mon programme, je doit faire en sorte qu'un traitement spécifique soit exécuté à une heure définie par un fichier de properties (disont minuit, ou minuit 5 pour éviter le problème du changement de jour).

    Mais cet événement ne doit pas dépendre d'un truc comme l'outil de gestion de taches planifiées de windows (ou cron), mais bien en interne par le programme.


    En gros je voulais savoir s'il existait un moyen connu pour faire cela, ou s'il faut que je lance un thread qui scrute l'heure à interval régulier ?


    Merci.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Peut-être que la classe Timer pourra répondre à ton problème.

  3. #3
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135

  4. #4
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    niquel ! et merci

  5. #5
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Bon je doit enlever le tag 'résolu' parceque j'ai un petit problème :

    j'ai opté pour l'utilisation de Quartz, parceque je CronTrigger est exactement ce que je cherchais.

    Mais, je ne l'utilise pas pour une application J2EE, mais pour une application J2SE (en fait une application lourde sans serveur d'application comme tomcat, je sais pas si J2SE est bien la dénomination qu'il faut utiliser pour çà).

    Et j'ai donc cette erreur (qui semble logique pour du non J2EE) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javax/transaction/UserTransaction
            at org.quartz.impl.StdSchedulerFactory.instantiate(StdSchedulerFactory.java:1104)
            at org.quartz.impl.StdSchedulerFactory.getScheduler(StdSchedulerFactory.java:1355)
    Comment je peut faire pour me sortir de ce problème tout en utilisant tout de même Quartz ?


    Merci.

  6. #6
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Points : 317
    Points
    317
    Par défaut
    je crois que tu aruas besoin d importer les jars necessaire,
    le package javax.transaction exite en j2ee pas en j2se.

    Cheers,

  7. #7
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    c'est tout de même bizarre vu que sur le site de Quartz ils disent bien que c'est compatible j2ee et j2se, mais ils ne donnent que des exemples pour j2ee.


    Bon sinon, comment je récupère cette classe ? il me faut tout le sdk j2ee ? çà va me faire un programme énorme à la fin.

  8. #8
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Citation Envoyé par BakaOnigiri Voir le message
    c'est tout de même bizarre vu que sur le site de Quartz ils disent bien que c'est compatible j2ee et j2se, mais ils ne donnent que des exemples pour j2ee.


    Bon sinon, comment je récupère cette classe ? il me faut tout le sdk j2ee ? çà va me faire un programme énorme à la fin.
    C'est une erreur lié à ta connexion avec ta base de donnée, tu dois utiliser JTA qui n'existe pas dans tomcat.

    J'ai déjà utilisé Quartz avec Tomcat et je me souviens pas avoir eu besoin de rajouter des jar de J2EE.

    Regarde le fichier de paramétrage de quartz

  9. #9
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    Ok, bon tout s'explique maintenant.

    D'après un post sur le forum de Quartz, il semble que depuis la version 1.5, sun as enlevé cette classe du jdk.

    You need to get the JTS classes from Sun's website because they were detached from the JDK in v1.5

    Its wierd they dont even provide a JAR just the class files.

    La classe UserTransaction ferais partie d'un truc appelé JTA, dans le dernier post ici : http://forums.opensymphony.com/threa...188680&#188680 une âme charitable fournie un .jar pour pouvoir facilement intégrer le tout dans un projet (12Ko en plus)

    Je reclos le sujet, merci.

  10. #10
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135

  11. #11
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    @moritan, même si maintenant çà fonctionne, je répond tout de même, je n'utilise pas tomcat, j'utilise Quartz avec une application lourde normale (un peut comme Azureus (pour donner l'exemple)) qui ne repose par sur j2ee mais sur j2se, et JTA n'est pas dans j2se, tout du moins depuis la version 1.5

    Merci tout de même

  12. #12
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Après avoir relu la doc Quartz,

    Il faut modifier une ligne fans ton paramétrage pour ne plus avoir de problème


    bStoreTX manages all transactions itself by calling commit() (or rollback()) on the database connection after every action (such as the addition of a job). JDBCJobStore is appropriate if you are using Quartz in a stand-alone application, or within a servlet container if the application is not using JTA transactions.


    The JobStoreTX is selected by setting the 'org.quartz.jobStore.class' property as such:
    Setting The Scheduler's JobStore to JobStoreTX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

  13. #13
    Membre averti Avatar de BakaOnigiri
    Inscrit en
    Avril 2002
    Messages
    366
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 366
    Points : 437
    Points
    437
    Par défaut
    oui, bon j'avais pas vu cette option, mais comme quartz ne lit le fichier .properties que s'il ont passe la bonne option à la jvm ou automatiquement s'il arrive à se lancer, je vais passer par la librairie JTA, çà fonctionne niquel.

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

Discussions similaires

  1. Exécuter une action à une heure précise
    Par mdjobongo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/04/2010, 15h58
  2. programmer une action à une heure donnée.
    Par pitispike dans le forum Android
    Réponses: 1
    Dernier message: 15/03/2010, 22h00
  3. déclencher une action à une heure précise
    Par thor76160 dans le forum C#
    Réponses: 2
    Dernier message: 05/09/2009, 16h06
  4. Executer une action à une heure donnée
    Par kstou2001 dans le forum VB.NET
    Réponses: 4
    Dernier message: 11/06/2008, 12h30
  5. Exécuter une action à une heure précise
    Par Rhadamanthe59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 10/02/2006, 00h12

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