Notifier au contexte qu'une tâche est terminée. [J2EE] - Java - Programmation
Marsh Posté le 10-03-2005 à 20:59:42
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é ...
Marsh Posté le 10-03-2005 à 21:10:52
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
Marsh Posté le 10-03-2005 à 21:12:30
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 ...
Marsh Posté le 10-03-2005 à 21:29:19
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 :
|
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)
Marsh Posté le 10-03-2005 à 21:48:22
pourquoi t'as mis [J2EE] dans ton titre?
Marsh Posté le 10-03-2005 à 21:50:23
ben pkoi tu le passes pas au moment où tu créés tes jobs quartz ?
Marsh Posté le 10-03-2005 à 21:50:51
(perso je pense qu'il doit y avoir une solution plus élégante )
Marsh Posté le 10-03-2005 à 21:51:50
the real moins moins a écrit : pourquoi t'as mis [J2EE] dans ton titre? |
bein la servlet api *est* dans le j2ee non?
Marsh Posté le 10-03-2005 à 21:52:01
http://www.onjava.com/pub/a/onjava [...] tml?page=3
Citation : |
tu as regardé de ce coté là ?
Marsh Posté le 10-03-2005 à 21:52:35
schnapsmann a écrit : bein la servlet api *est* dans le j2ee non? |
oui enfin on est surtout dans un problème de quartz ici
Marsh Posté le 10-03-2005 à 22:21:29
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.
Marsh Posté le 10-03-2005 à 22:23:58
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 ) |
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 )
extrait de la création et du "schedulage" des jobs :
Code :
|
Marsh Posté le 10-03-2005 à 22:24:46
ReplyMarsh Posté le 10-03-2005 à 22:28:37
c'est pas un objet que tu passes mais une classe ???
et quand tu as besoin de passer des paramètres tu fais comment ?
Marsh Posté le 10-03-2005 à 22:31:15
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
Marsh Posté le 10-03-2005 à 22:32:11
ReplyMarsh Posté le 10-03-2005 à 22:33:07
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 ?
Marsh Posté le 10-03-2005 à 22:34:42
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...)
Marsh Posté le 10-03-2005 à 22:36:32
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 ...
Marsh Posté le 10-03-2005 à 22:45:46
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.
Marsh Posté le 10-03-2005 à 22:53:26
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
Marsh Posté le 10-03-2005 à 22:57:04
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
Marsh Posté le 10-03-2005 à 22:58:35
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
Marsh Posté le 10-03-2005 à 23:02:36
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.
benou a écrit : |
en fait j'en sais rien, je ne fais que supposer, mais il me semble que ça n'a pas bcp d'interet
Marsh Posté le 10-03-2005 à 23:05:43
je vois pas en quoi c'est mieux de "registrer" des classes plutot que des objets
ptête pour las à avoir se faire chier avec la sérialisation ou un truc dans le genre ... mais bon ...
Marsh Posté le 10-03-2005 à 23:17:41
"avoir une instance "fraiche" par execution" !
un Job.
Marsh Posté le 11-03-2005 à 07:51:50
the real moins moins a écrit : "avoir une instance "fraiche" par execution" ! |
et donc ? c'est quoi l'intérêt ?
Marsh Posté le 11-03-2005 à 10:59:57
Reply
Marsh Posté le 10-03-2005 à 20:28:56
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
Merci.