Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tomcat et tache de fond

4 réponses
Avatar
Yann Neveu
Bonjour,
J'aimerais savoir quelle est la meilleur solution avec Tomcat pour
executer une tache de fond. Dans mon cas, il s'agit de l'envoi d'une
newsletter.
Dans l'état actuel des choses, le temps de génération du mail pour
chacun + le temps d'envoi des mails est trop conséquent pour attendre la
fin de ce traitement.
Je pense faire un exec d'un autre programme indépendant, mais ne
serait-il pas possible de le faire éxécuter par Tomcat?
Merci

4 réponses

Avatar
JeeP
en lancant un thread ... non ? (deja testé, ca marche sans pb)

Yann Neveu wrote:
Bonjour,
J'aimerais savoir quelle est la meilleur solution avec Tomcat pour
executer une tache de fond. Dans mon cas, il s'agit de l'envoi d'une
newsletter.
Dans l'état actuel des choses, le temps de génération du mail pour
chacun + le temps d'envoi des mails est trop conséquent pour attendre la
fin de ce traitement.
Je pense faire un exec d'un autre programme indépendant, mais ne
serait-il pas possible de le faire éxécuter par Tomcat?
Merci


Avatar
Guillaume Rosset
J'suis d'accord aussi avec JeeP, tu lances ton process qui prend du temps
dans un thread séparé, j'ai déjà essayé et ca pose aucun pb, tu ne vois pas
la perte de temps (faut dire que c'est un peu le but du multithreading); tu
peux meme le lancer a partir d une servlet que tu auras pris soin de lancer
dès le demarrage de tomcat (en faisant un <loadon-start-up> dans le web.xml
de ton appli)


"Yann Neveu" a écrit dans le message de news:
c6qk30$cjl$
Bonjour,
J'aimerais savoir quelle est la meilleur solution avec Tomcat pour
executer une tache de fond. Dans mon cas, il s'agit de l'envoi d'une
newsletter.
Dans l'état actuel des choses, le temps de génération du mail pour
chacun + le temps d'envoi des mails est trop conséquent pour attendre la
fin de ce traitement.
Je pense faire un exec d'un autre programme indépendant, mais ne
serait-il pas possible de le faire éxécuter par Tomcat?
Merci


Avatar
Yann Neveu
,le 29/04/2004 22:11 Guillaume Rosset a écrit:
J'suis d'accord aussi avec JeeP, tu lances ton process qui prend du temps
dans un thread séparé, j'ai déjà essayé et ca pose aucun pb, tu ne vois pas
la perte de temps (faut dire que c'est un peu le but du multithreading); tu
peux meme le lancer a partir d une servlet que tu auras pris soin de lancer
dès le demarrage de tomcat (en faisant un <loadon-start-up> dans le web.xml
de ton appli)


Merci à vous deux, effectivement j'ai opté pour le thread et ça
fonctionne très bien.

Avatar
jerome moliere
Yann Neveu wrote:
,le 29/04/2004 22:11 Guillaume Rosset a écrit:

J'suis d'accord aussi avec JeeP, tu lances ton process qui prend du temps
dans un thread séparé, j'ai déjà essayé et ca pose aucun pb, tu ne
vois pas
la perte de temps (faut dire que c'est un peu le but du
multithreading); tu
peux meme le lancer a partir d une servlet que tu auras pris soin de
lancer
dès le demarrage de tomcat (en faisant un <loadon-start-up> dans le
web.xml
de ton appli)



Merci à vous deux, effectivement j'ai opté pour le thread et ça
fonctionne très bien.
oups desole mais j'etais pas trop là ces derniers temps mais cette

solution est la pire de toute!!! surtout pas.... jamais faire de thread
dans un contexte J2EE.. il y a peu de chances pour que tu prennes le
temps de bien les programmer tu feras donc des sleep() qui bloqueront
fatalement, ton nombre de threads va groissir, la JVM plantera tot ou
tard...
la solution clean est d'utiliser JMS depuis ta web-app, tu transmets un
message a une queue, qui va le dispatcher et une appli ailleurs
(autonome) le traitera sans aucun probleme...

Jerome

--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.eyrolles.com/php.informatique/Ouvrages/ouvrage.php3?ouv_ean13—82212111941