From 5628d007fc9b58fd22981d626e6f3557d8cdccb3 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期三, 14 六月 2023 21:20:08 +0800
Subject: [PATCH] 优化线程间录像抢占问题

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index bd28cfe..ffdf968 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -8,7 +8,6 @@
 import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper;
 import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube;
 import com.ruoyi.alarm.tubeAlarm.mapper.ArdAlarmTubeMapper;
-import com.ruoyi.alarm.tubeAlarm.service.IArdAlarmTubeService;
 import com.ruoyi.alarmpoints.tube.domain.ArdTubes;
 import com.ruoyi.alarmpoints.tube.domain.ArdTubesDetails;
 import com.ruoyi.alarmpoints.tube.mapper.ArdTubesDetailsMapper;
@@ -19,10 +18,10 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.tools.ArdTool;
 import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.common.utils.uuid.UUID;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
+import com.ruoyi.device.hiksdk.common.GlobalVariable;
 import com.ruoyi.device.hiksdk.config.MinioClientSingleton;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
 import com.ruoyi.device.hiksdk.util.hikSdkUtil.GisUtil;
@@ -30,16 +29,13 @@
 import com.ruoyi.utils.tube.GeoPoint;
 import com.ruoyi.utils.tube.TubeTools;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
 
 /**
  * @ClassName: globalAlarmServiceImpl
@@ -210,14 +206,20 @@
                             String recordName = minDistanceCameraId + "/" + time + "/" + simpleUUID + ".mp4";
                             cmd.setRecordObjectName(recordName);
                             hikClientService.recordToMinio(cmd);
+                            GlobalVariable.threadMap.put(minDistanceCameraId,Thread.currentThread().getName());//灏嗙浉鏈篿d涓庡綋鍓嶅鐞嗙嚎绋嬪悕绉扮粦瀹�
                             Thread.sleep(30000);
-                            cmd.setEnable(false);
-                            cmd.setUploadMinio(true);
-                            hikClientService.recordToMinio(cmd);
-                            //鏇存柊褰曞儚
-                            String url = MinioClientSingleton.domainUrl + "/" + cmd.getRecordBucketName() + "/" + recordName;
-                            ardAlarmTube.setRecordUrl(url);
-                            ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube);
+                            String thread = GlobalVariable.threadMap.get(minDistanceCameraId);
+                            String currentThread = Thread.currentThread().getName();
+                            //鍒ゆ柇鐩告満缁戝畾绾跨▼鏄惁鏄綋鍓嶇嚎绋嬶紝濡傛灉鏄紝鍋滄褰曞儚锛屽鏋滀笉鏄紝璇存槑鐩告満琚叾浠栫嚎绋嬫姠鍗狅紝涓嶅仠姝㈠綍鍍�
+                            if(thread.equals(currentThread)) {
+                                cmd.setEnable(false);
+                                cmd.setUploadMinio(true);
+                                hikClientService.recordToMinio(cmd);
+                                //鏇存柊褰曞儚
+                                String url = MinioClientSingleton.domainUrl + "/" + cmd.getRecordBucketName() + "/" + recordName;
+                                ardAlarmTube.setRecordUrl(url);
+                                ardAlarmTubeMapper.updateArdAlarmTube(ardAlarmTube);
+                            }
                         }
                     }
                     break;

--
Gitblit v1.9.3