From b726dc97538b7d4ba71fd06c14161017dd67c2b7 Mon Sep 17 00:00:00 2001
From: xubinbin <1323875150@qq.com>
Date: 星期三, 10 五月 2023 15:38:22 +0800
Subject: [PATCH] "@schedule"是Spring框架提供的一种定时任务执行机制,默认情况下它是单线程执行,项目中多次使用fixedRate按指定频率执行任务(不管前面任务是否已经完成),在同时执行多个定时任务时可能会出现阻塞和性能问题,为了解决这种单线程瓶颈问题,将定时任务的执行机制改为支持多线程

---
 src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
index 42ff5ba..a501daf 100644
--- a/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
+++ b/src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
@@ -3,6 +3,7 @@
 import io.swagger.v3.oas.annotations.media.Schema;
 
 import java.io.Serializable;
+import java.util.Objects;
 
 @Schema(description = "娴佷俊鎭�")
 public class StreamInfo implements Serializable, Cloneable{
@@ -168,7 +169,7 @@
     }
 
     public void setRtmp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
-        String file = String.format("%s/%s/%s", app, stream, callIdParam);
+        String file = String.format("%s/%s%s", app, stream, callIdParam);
         if (port > 0) {
             this.rtmp = new StreamURL("rtmp", host, port, file);
         }
@@ -178,7 +179,7 @@
     }
 
     public void setRtsp(String host, int port, int sslPort, String app, String stream, String callIdParam) {
-        String file = String.format("%s/%s/%s", app, stream, callIdParam);
+        String file = String.format("%s/%s%s", app, stream, callIdParam);
         if (port > 0) {
             this.rtsp = new StreamURL("rtsp", host, port, file);
         }
@@ -237,6 +238,9 @@
     }
 
     public void setRtc(String host, int port, int sslPort, String app, String stream, String callIdParam) {
+        if (callIdParam != null) {
+            callIdParam = Objects.equals(callIdParam, "") ? callIdParam : callIdParam.replace("?", "&");
+        }
         String file = String.format("index/api/webrtc?app=%s&stream=%s&type=play%s", app, stream, callIdParam);
         if (port > 0) {
             this.rtc = new StreamURL("http", host, port, file);
@@ -520,7 +524,7 @@
         try{
             instance = (StreamInfo)super.clone();
         }catch(CloneNotSupportedException e) {
-            logger.error("鏈鐞嗙殑寮傚父 ", e);
+            e.printStackTrace();
         }
         return instance;
     }

--
Gitblit v1.8.0