Bonjour!
Pour une question d'optimisation de la mémoire, j'ai besoin de faire une liste que je mets à jour toutes les x secondes.
Cette liste contient les objets visualisés par les différents utilisateurs (un objet visualisé par deux utilisateurs n'est présent qu'une fois dans la liste, et un objet qui ne serait visualisé par aucun utilisateur n'est pas présent dans la liste)
J'ai donc mis en place deux hashtable :
La premièer HashTable est remplie avec comme clé les id des objets (id de la BD à laquelle est lié mon projet), et comme valeur une ArryList contenant tous les id de session qui visualisent l'objet)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private Hashtable<String, ArrayList<String>> consultedObjectsBySessionid; //The String element is the id of the element, The second param is the list of the session ids using the element private Hashtable<String, ElementIdex> consultedObjects; // The String element is the id of the element, The second param is the element java object
Lorsque quelqu'un visualise un nouvel objet cette arraylist est mise à jour (ajout de son id des session). Lorsque quelqu'un se déconnecte de l'appli par le lien "logout", son id de session est enlevé des arraylist....
Le souci c'est que lorsque quelqu'un arrive à son session.timeout, lorsque la session expire, on n'a plus acces au id de session. Du coup on peut plus l'enlever mais faut tout de même l'enlever puisqu'il n'est plus utilisé.
Donc je voulais pouvoir récupérer tous les id de sessions valides, ou alors checker si tel ou tel id de session est déjà utilisé pour une session ou pas....
Vous auriez une idée???
Partager