Bonsoir à tous,
Voilà plusieurs jours que je m'arrache littérallement les cheveux sur une petite application que je développe et qui me facilite la vie de tous les jours.
Il s'agit d'une application qui surveille la disponibilité réseau d'une ou plusieurs machines par PING.
J'utilise une classe Runnable pour que mes requêtes s'envoient en parallèle sans inter-blocage. Tout fonctionne bien sauf une chose ... les temps de réponse !
Je vous mets la partie du code, ça devrait vous aider à comprendre et peut être même trouver la solution
Pour le calcul du temps, j'ai d'abord essayé avec une Date, mais je pensais que c'était trop consommateur, donc je suis passé à l'objet System.
Le temps retourné est la différence entre le temps après le "isReachable" et le temps juste avant. Normalement ça ne devrait prendre que quelques millisecondes (comme le font mes requêtes directement avec un PING windows) et là ma différence est de plus ou moins 1000ms.
Merci d'avance pour ceux qui se creuseront la tête.
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 while(vivant){ try { responseTimeTemp = System.nanoTime(); reachable = address.isReachable(5000); responseTimeTemp = Math.round((System.nanoTime() - responseTimeTemp)/Math.pow(10, 6)); System.out.println("--- " + responseTimeTemp); responseTime = (int)responseTimeTemp; this.nbPingSend++; if(reachable){ this.nbPingReceive++; this.lastResponse = new Date(); System.out.println("update FAIT : " + responseTime + "!"); } else { System.err.println(name + " : injoignable ! "); this.lastCut = new Date(); } } catch (UnknownHostException e) { //System.err.println("Unable to lookup " + name); } catch (IOException e) { //System.err.println("Unable to reach " + name); this.lastCut = new Date(); } catch(Exception e){ //System.err.println("Unable to reach " + name); } }




Répondre avec citation







Partager