bonjour à tous,
J'aimerais savoir s'il est possible d'exécuter une tâche de manière continue dans un container web (depuis le lancement jusqu'à l'arrêt de celui-ci), indépendamment du cycle de vie de la Servlet ?
Exemple : j'ai un "démon" (opérations dans une boucle sans fin) et je veux une interface web qui indiquerait l'état de ce démon et/ou permettrait de changer les paramètres dans l'exécution de celui-ci.
Si je lance mon démon depuis la méthode init() de ma Servlet :
- Premièrement, est-ce qu'il est possible de lancer une Thread (ou autre chose) depuis une Servlet ?
- Ensuite, le démon ne se lancera qu'après que le container web ait appelé la méthode init() de ma Servlet, donc a priori, après la première connexion d'un client sur cette Servlet, alors que j'aimerais que mon démon se lance en même temps que le container web,
- Enfin, lorsque le container web aura jugé que ma Servlet doit disparaître (et qu'avant il appelle la méthode destroy() ), il y a des chances pour que mon démon s'arrête aussi, non ?
Une solution (compliquée) serait que mon démon tourne dans un process séparé et que j'ai un moyen de communication entre ce process et ma servlet...mais la communication inter-process, c'est jamais simple.
Est-ce qu'il n'y aurait pas une solution plus simple, dans laquelle l'espace mémoire de mon démon et celui de ma Servlet serait partagé ?
Par avance, merci de votre aide
Partager