Commit a8a85c0f9e16acd263a9bc9e6894a4efd237bc02

Authored by xp.Huang
1 parent 72d9bb17

perf: 视频获取url,过期检查

1 package org.thingsboard.server.common.data.yunteng.utils.tools; 1 package org.thingsboard.server.common.data.yunteng.utils.tools;
2 -  
3 import java.time.LocalDateTime; 2 import java.time.LocalDateTime;
4 import java.util.HashMap; 3 import java.util.HashMap;
  4 +import java.util.Iterator;
5 import java.util.Map; 5 import java.util.Map;
6 6
7 public class VideoUrlUtils { 7 public class VideoUrlUtils {
8 8
9 - private static Map<String, Map<String,Object>> videoUrlData = new HashMap<>(); 9 + private static final Map<String, Map<String,Object>> videoUrlData = new HashMap<>();
10 10
11 11
12 public static void putVideoUrl(String key, String url, LocalDateTime expireTime) { 12 public static void putVideoUrl(String key, String url, LocalDateTime expireTime) {
  13 + //检查哪些过期了,过期了的就移除
  14 + checkVideoUrlData();
13 Map<String,Object> videoUrlInfo = new HashMap<>(); 15 Map<String,Object> videoUrlInfo = new HashMap<>();
14 videoUrlInfo.put("url",url); 16 videoUrlInfo.put("url",url);
15 videoUrlInfo.put("expireTime",expireTime); 17 videoUrlInfo.put("expireTime",expireTime);
@@ -26,4 +28,17 @@ public class VideoUrlUtils { @@ -26,4 +28,17 @@ public class VideoUrlUtils {
26 //如果过期了返回null 28 //如果过期了返回null
27 return nowTime.isAfter(expireTime) ? null : videoUrlInfo.get("url").toString(); 29 return nowTime.isAfter(expireTime) ? null : videoUrlInfo.get("url").toString();
28 } 30 }
  31 + private static void checkVideoUrlData(){
  32 + if(!videoUrlData.isEmpty()){
  33 + Iterator<Map.Entry<String, Map<String, Object>>> iterator = videoUrlData.entrySet().iterator();
  34 + while (iterator.hasNext()){
  35 + Map.Entry<String, Map<String, Object>> entry = iterator.next();
  36 + LocalDateTime expireTime = (LocalDateTime) entry.getValue().get("expireTime");
  37 + LocalDateTime nowTime = LocalDateTime.now();
  38 + if(nowTime.isAfter(expireTime)){
  39 + iterator.remove();
  40 + }
  41 + }
  42 + }
  43 + }
29 } 44 }