Commit e66b83965943e8471d5e2fb616899e0c8271e840

Authored by ydpd
1 parent 298d104f

修改内存泄露

src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java
@@ -23,7 +23,8 @@ public class SipSubscribe { @@ -23,7 +23,8 @@ public class SipSubscribe {
23 23
24 private Map<String, SipSubscribe.Event> okSubscribes = new ConcurrentHashMap<>(); 24 private Map<String, SipSubscribe.Event> okSubscribes = new ConcurrentHashMap<>();
25 25
26 - private Map<String, Date> timeSubscribes = new ConcurrentHashMap<>(); 26 + private Map<String, Date> okTimeSubscribes = new ConcurrentHashMap<>();
  27 + private Map<String, Date> errorTimeSubscribes = new ConcurrentHashMap<>();
27 28
28 // @Scheduled(cron="*/5 * * * * ?") //每五秒执行一次 29 // @Scheduled(cron="*/5 * * * * ?") //每五秒执行一次
29 // @Scheduled(fixedRate= 100 * 60 * 60 ) 30 // @Scheduled(fixedRate= 100 * 60 * 60 )
@@ -33,14 +34,24 @@ public class SipSubscribe { @@ -33,14 +34,24 @@ public class SipSubscribe {
33 Calendar calendar = Calendar.getInstance(); 34 Calendar calendar = Calendar.getInstance();
34 calendar.setTime(new Date()); 35 calendar.setTime(new Date());
35 calendar.set(Calendar.HOUR, calendar.get(Calendar.HOUR) - 1); 36 calendar.set(Calendar.HOUR, calendar.get(Calendar.HOUR) - 1);
36 - for (String key : timeSubscribes.keySet()) {  
37 - if (timeSubscribes.get(key).before(calendar.getTime())){ 37 + for (String key : okTimeSubscribes.keySet()) {
  38 + if (okTimeSubscribes.get(key).before(calendar.getTime())){
38 logger.info("[定时任务] 清理过期的订阅信息: {}", key); 39 logger.info("[定时任务] 清理过期的订阅信息: {}", key);
39 - errorSubscribes.remove(key);  
40 okSubscribes.remove(key); 40 okSubscribes.remove(key);
41 - timeSubscribes.remove(key); 41 + okTimeSubscribes.remove(key);
  42 + }
  43 + }
  44 + for (String key : errorTimeSubscribes.keySet()) {
  45 + if (errorTimeSubscribes.get(key).before(calendar.getTime())){
  46 + logger.info("[定时任务] 清理过期的订阅信息: {}", key);
  47 + errorSubscribes.remove(key);
  48 + errorTimeSubscribes.remove(key);
42 } 49 }
43 } 50 }
  51 + logger.info("okTimeSubscribes.size:{}",okTimeSubscribes.size());
  52 + logger.info("okSubscribes.size:{}",okSubscribes.size());
  53 + logger.info("errorTimeSubscribes.size:{}",errorTimeSubscribes.size());
  54 + logger.info("errorSubscribes.size:{}",errorSubscribes.size());
44 } 55 }
45 56
46 public interface Event { 57 public interface Event {