Destruction d'un thread en session

4 réponses
Avatar
Vincent
Bonjour,

Maintenant que je suis bien content et que j'arrive à lancer mon thread (et
à l'arrêter) suivant les ordres du client, j'ai un problème relatif au fait
que le client peut démarrer le thread, dont la référence est mise en
session, puis se déconnecter du site.
Alors là, je suis bien embêté : le thread continue à tourner, mais sa
référence qui est stockée dans la session utilisateur, elle, disparaît. Et
c'est bien balo parce que lorsque le client revient sur le site, et qu'il
souhaite arrêter le thread (l'état du thread est sauvegardé dans la bd)
alors là, impossible d'atteindre ce thread.

Ce que j'aimerais faire, c'est que lorsque le client quitte le site alors
que le thread est démarré, je veux qu'il continue à tourner (donc ça c'est
bon) mais surtout que le client puisse l'arrêter en revenant sur le site. Et
c'est là que ça coince bien sûr.

J'espère être clair...

--
Vincent

4 réponses

Avatar
Vincent
"Vincent" a écrit dans le
message news: bfma1o$8m3$
Bonjour,
[SNIP]

Ce que j'aimerais faire, c'est que lorsque le client quitte le site alors
que le thread est démarré, je veux qu'il continue à tourner (donc ça c'est
bon) mais surtout que le client puisse l'arrêter en revenant sur le site.
Et

c'est là que ça coince bien sûr.


Une piste, ce serait peut-être de mettre une Hashtable <loginClient,
referenceThread> dans le contexte application... Ainsi, la référence vers le
thread ne serait pas détruite lors de la perte de la connexion du client.

--
Vincent

Avatar
Arnaud Roger
"Vincent" a écrit dans le
message de news:bfmatf$a03$

"Vincent" a écrit dans le
message news: bfma1o$8m3$
Bonjour,
[SNIP]

Ce que j'aimerais faire, c'est que lorsque le client quitte le site
alors


que le thread est démarré, je veux qu'il continue à tourner (donc ça
c'est


bon) mais surtout que le client puisse l'arrêter en revenant sur le
site.


Et
c'est là que ça coince bien sûr.



il existe des SessionListener qui permettent de surveiller les etats de la
session

Arnaud R.


Avatar
Raphaël Piéroni
Que pense tu de ca ?
class MonSingleton
{
private final Hashtable hash = new Hashtable()
public void addThread(Object client, Object thread) {...}
public Object getThread(Object client) {...}
private static MonSingleton instance;
public static MonSingleton getMonSingleton()
{
if (instance == null) {
instance = new MonSingleton();
instance.configure();//optionnel
}
return instance;
}
}
Avatar
Vincent
"Raphaël Piéroni" wrote in message
news:bfmkv9$74t$
Que pense tu de ca ?
class MonSingleton
{
private final Hashtable hash = new Hashtable()
public void addThread(Object client, Object thread) {...}
public Object getThread(Object client) {...}
private static MonSingleton instance;
public static MonSingleton getMonSingleton()
{
if (instance == null) {
instance = new MonSingleton();
instance.configure();//optionnel
}
return instance;
}
}



Oui... une sorte de pool de threads, j'y pensais en mangeant. :-)
Et le mettre alors en attribut de l'application alors. Oui, à voir.
Mais c'est demain que je verrai! :-)

Merci en tout cas!

--
Vincent