salut tout le monde,
j'explique mon problème.l'utilisateur entre deux valeur x et y.je ping des machines chaque x minutes. une fois le ping échoue sur une machine, je dois pinger cette machine chaque y minutes.pour cela, j'ai créer deux timer, un qui ping chaque x minutes, et l'autre qui ping chaque y minutes. dans ma page jsp, je dois afficher le résultats de ces pings, alors j'ai un action qui s'en occupe.dans cette action, il y a l'instanciation de deux timers qui appellent eux aussi autres classe qui se charge de stocker les nouvelles valeurs dans ma base de données.le rôle de la page jsp est donc de lire les nouvelle valeurs de la base et de les afficher.j'ai penser donc a faire un refresh chaque 15s par exemple pour mettre à jour les valeurs.mais le problème est que si je refresh ma page, l'action s'exécutera et donc les timers aussi vont reprendre dès le début.
je pose ma classe action pour mieux voir:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HttpSession session=request.getSession(); ConnexionBD bd=new ConnexionBD(); EtatServeurForm es; List<EtatServeurForm> st=new ArrayList(); //la partie des timers Tempo_normal tn=new Tempo_normal(); tn.Tempo_normal(); Tempo_panne tp=new Tempo_panne(); tp.Tempo_panne(); //la partie de lire de la base de données bd.lire("select * from serveurs"); while(bd.résultat.next()) { String nom=bd.résultat.getString("nom_serveur"); String etat=bd.résultat.getString("etat"); String cpu=bd.résultat.getString("cpu"); String hdd=bd.résultat.getString("hdd"); es=new EtatServeurForm(nom,etat,cpu,hdd); st.add(es); } session.setAttribute("serveurs", st); return mapping.findForward(SUCCESS); }
Partager