Bonjour,
A priori, vu les fuites mémoires et le nombre de threads qui augmente sans cesse, il doit y avoir un problème dans la façon dont c'est codé dans l'application.
Voici la fonction appelée régulièrement :
-->est-ce que quelque chose de mal saute aux yeux?
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 @Transactional public List<InformationValideur> lectureJournee() { try { //Toutes les 60s : nouveau thread de rechargement @Transactional final class Launch implements Runnable { public void run() { try { if (!ChargementJourneeEnCours) { ChargementJourneeEnCours = true; listeInformationValideurJournee = lectureJourneeCourante(); dateDernierChargementJournee = new Date(); ChargementJourneeEnCours = false; } } catch (Exception e) { e.printStackTrace(); ChargementJourneeEnCours = false; dateDernierChargementJournee = null; } } } Launch l = new Launch(); Thread internalThread = new Thread(l); internalThread.start(); } catch (Exception e) { ChargementJourneeEnCours = false; } return listeInformationValideurJournee; }
1°/Devrait-on explicitement glisser dans la méthode run() des instructions Thread.currentThread().interrupt(); ?
2°/Normalement on s'assure de n'appeler lectureJourneeCourante() qu'une fois mais est-ce que mettre cette fonction en synchronized peut être utile?
Merci.
Ci-dessous le code plus complet.
Partager