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

  FORUM HardWare.fr
  Programmation
  Java

  [J2EE] Notifier au contexte qu'une tâche est terminée.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[J2EE] Notifier au contexte qu'une tâche est terminée.

n°1008787
glod 2
Votre trajet, notre projet.
Posté le 10-03-2005 à 20:28:56  profilanswer
 

Hello,
 
dans mon appli web (serveur tomcat), j'ai une tache quartz qui lance un traitement lourd une fois par semaine. Ce traîteent se fait dans des classes java simple. J'aimrais pouvoir notifier mon contexte web que le traitement est terminé, pour que mes JSP soient "au courant" qu'ils peuvent exploiter les nouvelles données. J'ai pas trop d'idée sur comment faire ça, donc je me tourne vers vous :jap:
 
Merci.

mood
Publicité
Posté le 10-03-2005 à 20:28:56  profilanswer
 

n°1008802
benou
Posté le 10-03-2005 à 20:59:42  profilanswer
 

ton traitement est executé au sein du serveur tomcat ?
si oui, tu as juste à mettre un objet dans le context pour prévenir que c'est terminé ...

n°1008810
glod 2
Votre trajet, notre projet.
Posté le 10-03-2005 à 21:10:52  profilanswer
 

Oui je crois. J'avais pensé à mettre un truc dans le contexte mais je ne sais pas comment le récupérer, le contexte, à partir des classes qui font le traîtement (qui sont des POJO tous simples). A mon avis oui le traîtement se fait dans tomcat puisque dans les classes sont dans le WEB-INF de ma webapp, m'enfin chuis pas bien sûr d'avoir compris ta question :sweat:

n°1008811
benou
Posté le 10-03-2005 à 21:12:30  profilanswer
 

tu lances une JVM à part ? ou c'est la JVM qui execute le serveur tomcat qui execute ton traitement ?
 
t'as qu'à passer le contexte à l'objet qui fait le traitement ...

n°1008844
glod 2
Votre trajet, notre projet.
Posté le 10-03-2005 à 21:29:19  profilanswer
 

Ah oui pas con, mais jsais pas si jpeux faire ça.
Je reprends la chaîne des appels :
Une servlet initialise les jobs quartz, qui va donc tourner en fond. A la fin de la semaine, le le scheduler quartz se réveille et appelle ses jobs par
 

Code :
  1. public class MatchJob implements Job {
  2.    
  3.     /** Creates a new instance of MatchJob */
  4.     public MatchJob() {
  5.     }
  6.    
  7.     public void execute(JobExecutionContext cntxt)
  8.     throws JobExecutionException {


 
Le blem c'et que j'ai pas de contrôle sur la façon dont quartz appelle ses petits, donc je peux changer aucune méthode d'appel :( (à moins que qque chose m'échappe)
 

n°1008862
the real m​oins moins
Posté le 10-03-2005 à 21:48:22  profilanswer
 

pourquoi t'as mis [J2EE] dans ton titre?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008866
benou
Posté le 10-03-2005 à 21:50:23  profilanswer
 

ben pkoi tu le passes pas au moment où tu créés tes jobs quartz ?

n°1008867
the real m​oins moins
Posté le 10-03-2005 à 21:50:51  profilanswer
 

(perso je pense qu'il doit y avoir une solution plus élégante :o)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008869
schnapsman​n
Zaford Beeblefect
Posté le 10-03-2005 à 21:51:50  profilanswer
 

the real moins moins a écrit :

pourquoi t'as mis [J2EE] dans ton titre?


bein la servlet api *est* dans le j2ee non?


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°1008872
the real m​oins moins
Posté le 10-03-2005 à 21:52:01  profilanswer
 

http://www.onjava.com/pub/a/onjava [...] tml?page=3

Citation :


There are three types of listeners: JobListeners, TriggerListeners, and SchedulerListeners.


tu as regardé de ce coté là ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 10-03-2005 à 21:52:01  profilanswer
 

n°1008873
the real m​oins moins
Posté le 10-03-2005 à 21:52:35  profilanswer
 

schnapsmann a écrit :

bein la servlet api *est* dans le j2ee non?


oui enfin on est surtout dans un problème de quartz ici


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008921
glod 2
Votre trajet, notre projet.
Posté le 10-03-2005 à 22:21:29  profilanswer
 

Oui, c'est en expliquant le pb que je me suis apperçu que ça tenait plus à quartz. Je vais matter du coté des listeners.
, mais je pense pas que ça ira de ce coté, puisque quartz lance le job mais je ne pense pas qu'il soit prévenu que le job est terminé. Enfin ptêt que justement les listeners le permettent. MErci pour le lien en tout cas.

n°1008924
glod 2
Votre trajet, notre projet.
Posté le 10-03-2005 à 22:23:58  profilanswer
 

benou a écrit :

ben pkoi tu le passes pas au moment où tu créés tes jobs quartz ?


 

the real moins moins a écrit :

(perso je pense qu'il doit y avoir une solution plus élégante :o)


 
déja plus élégante, et même si je voulais le faire jvois pas comment jpourrai passer quoique ce soit, pour créer le job y a des méthodes bien définies et jpeux pas y ajouter quoique ce soit (à moins encore une fis que qque chose m'échappe :o)
 
extrait de la création et du "schedulage" des jobs :

Code :
  1. StdSchedulerFactory factory;
  2.             factory = new StdSchedulerFactory();
  3.    
  4.             Scheduler scheduler = factory.getScheduler();
  5.             scheduler.start();
  6.            
  7.             JobDetail jd = new JobDetail("Encheres",
  8.                                           scheduler.DEFAULT_GROUP,
  9.                                           EnchereJob.class);
  10.             SimpleTrigger trigger = new SimpleTrigger("Defaut",
  11.                                                        scheduler.DEFAULT_GROUP,
  12.                                                        SimpleTrigger.REPEAT_INDEFINITELY,
  13.                                                        1000*60);
  14.            
  15.             JobDetail jeco = new JobDetail("Economie",
  16.                                           scheduler.DEFAULT_GROUP,
  17.                                           EcoJob.class);
  18.             SimpleTrigger ecotrig = new SimpleTrigger("EcoTrig",
  19.                                                        scheduler.DEFAULT_GROUP,                                                     
  20.                                                        cal.getTime(),
  21.                                                        null,
  22.                                                        SimpleTrigger.REPEAT_INDEFINITELY,
  23.                                                        1000*60*60*24*7);
  24.             cal.set(2005,2,1,21,4);
  25.             System.out.println("Date de début : " + cal.getTime());
  26.             JobDetail jmatch = new JobDetail("Matchs",
  27.                                              scheduler.DEFAULT_GROUP,
  28.                                              MatchJob.class);
  29.             SimpleTrigger matchtrig = new SimpleTrigger("MatchTrig",
  30.                                                        scheduler.DEFAULT_GROUP,                                                     
  31.                                                        cal.getTime(),
  32.                                                        null,
  33.                                                        SimpleTrigger.REPEAT_INDEFINITELY,
  34.                                                        1000*60*60*24*7);
  35.            
  36.             scheduler.scheduleJob(jd, trigger);
  37.             scheduler.scheduleJob(jeco, ecotrig);
  38.             scheduler.scheduleJob(jmatch, matchtrig);

n°1008926
the real m​oins moins
Posté le 10-03-2005 à 22:24:46  profilanswer
 

LES LISTENERS JTE DIS


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008936
benou
Posté le 10-03-2005 à 22:28:37  profilanswer
 

c'est pas un objet que tu passes mais une classe ???
et quand tu as besoin de passer des paramètres tu fais comment ?

n°1008947
the real m​oins moins
Posté le 10-03-2005 à 22:31:15  profilanswer
 

y'a un context, genre de map je crois.
mais clairement, il ferait mieux de passer par un listener, putain de bordel de cul.
tu refourgues le servletctx dans le cteur du listener, et basta


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008951
glod 2
Votre trajet, notre projet.
Posté le 10-03-2005 à 22:32:11  profilanswer
 

the real moins moins a écrit :

LES LISTENERS JTE DIS


ben j'ai dis que j'allais matter :o

n°1008953
benou
Posté le 10-03-2005 à 22:33:07  profilanswer
 

nan mais j'ai rien contre le listener, moi ...
 
c'est quoi l'intérêt de filer un objet classe plutut qu'un objet de type runnable ou autre ?

n°1008956
the real m​oins moins
Posté le 10-03-2005 à 22:34:42  profilanswer
 

au JobDetail là?  à mon avis c'est pour registrer ton job. derriere doit y'avoir une factory qui va l'instancier *quand y'en aura besoin*. (sinon les Jobs devraient persister à perpete...)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008959
benou
Posté le 10-03-2005 à 22:36:32  profilanswer
 

the real moins moins a écrit :

au JobDetail là?  à mon avis c'est pour registrer ton job. derriere doit y'avoir une factory qui va l'instancier *quand y'en aura besoin*. (sinon les Jobs devraient persister à perpete...)


je trouve ca bizarre quand même ... rien t'empêche de le faire toit même le newInstance() si tu veux pas que l'objet reste en mémoire ...

n°1008972
the real m​oins moins
Posté le 10-03-2005 à 22:45:46  profilanswer
 

euh, le but du jeu c'est de planifier l'execution future et recurrente de jobs, pas de les executer sur le moment.
et si t'y tiens vraiment, oui, y'a ptet moyen d'utiliser une instance; mais comme je t'ai dis, je pense qu'un "contexte" est passé à tes jobs, ds lequel tu peux probablement mettre ce que tu veux, de toute façon.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008979
benou
Posté le 10-03-2005 à 22:53:26  profilanswer
 

mouais ... je trouve pas ca terrible de passer par de l'invocation dynamique pour ca ... l'intérêt est minime ... par contre d'un point de vu design, c'est bien crade :/

n°1008982
the real m​oins moins
Posté le 10-03-2005 à 22:57:04  profilanswer
 

moi j'crois que t'as pas bien pigé la portée du truc - et qu'il y a aussi un moyen de passer des instances si ça te chante


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008983
benou
Posté le 10-03-2005 à 22:58:35  profilanswer
 

the real moins moins a écrit :

moi j'crois que t'as pas bien pigé la portée du truc


non, clairement pas ... j'ai pas regardé ...
 

the real moins moins a écrit :

et qu'il y a aussi un moyen de passer des instances si ça te chante


oki :jap:

n°1008985
the real m​oins moins
Posté le 10-03-2005 à 23:02:36  profilanswer
 

benou a écrit :

non, clairement pas ... j'ai pas regardé ...


en gros, le code qu'il utilise là, c'est pour au "moteur":
"he, tu vas m'executer CE job tous les 3 jours": ça me parait donc sain de n'instancier la classe qu'au moment venu, et d'avoir une instance "fraiche" par execution: c'est quartz qui gere ça. en tant qu'utilisateur/developpeur, tu ne fais que "registrer" tes jobs.
 


en fait j'en sais rien, je ne fais que supposer, mais il me semble que ça n'a pas bcp d'interet


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1008987
benou
Posté le 10-03-2005 à 23:05:43  profilanswer
 

je vois pas en quoi c'est mieux de "registrer" des classes plutot que des objets [:skeye]
ptête pour las à avoir se faire chier avec la sérialisation ou un truc dans le genre ... mais bon ...

n°1008990
the real m​oins moins
Posté le 10-03-2005 à 23:17:41  profilanswer
 

"avoir une instance "fraiche" par execution" !
un Job.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°1009212
benou
Posté le 11-03-2005 à 07:51:50  profilanswer
 

the real moins moins a écrit :

"avoir une instance "fraiche" par execution" !
un Job.


et donc ? c'est quoi l'intérêt ?

n°1009397
the real m​oins moins
Posté le 11-03-2005 à 10:59:57  profilanswer
 

j'abandonne.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 


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

  [J2EE] Notifier au contexte qu'une tâche est terminée.

 

Sujets relatifs
[PERL]Tache planifiée console redirigée ???[Offre d'emplois] [SSII] [92] Ingénieur de Dev .Net / J2EE / Lotus
Quel langage de programmation pour ce contexte?[J2EE-JBOSS] Que faut-il installer ?
[J2EE] Pour eclipse et jBoss : lomboz ou Jboss IDEComment proteger son appli J2EE ?
premiers pas J2EE (Apache + Tomcat + Eclipse)Serveur d'aplication JSP ou J2EE ?
Implementation j2ee avec Jaas/LDAPprogramme en tache de fond
Plus de sujets relatifs à : [J2EE] Notifier au contexte qu'une tâche est terminée.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR