From cf4afcc8902efc85f1e71f26073404a0a7a4f204 Mon Sep 17 00:00:00 2001 From: liusuyi <1951119284@qq.com> Date: 星期三, 31 七月 2024 09:48:41 +0800 Subject: [PATCH] 修改:异步async指定线程池 --- ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java | 38 +++++++++++--------------------------- 1 files changed, 11 insertions(+), 27 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java index 36d5d94..e622d1c 100644 --- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java +++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java @@ -9,18 +9,14 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.MimeTypeUtils; -import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.uuid.IdUtils; -import com.ruoyi.device.camera.service.IArdCamerasService; -import com.ruoyi.device.camera.factory.CameraSDK; import com.ruoyi.device.camera.domain.ArdCameras; import com.ruoyi.device.camera.domain.CameraCmd; +import com.ruoyi.device.camera.factory.CameraSDK; +import com.ruoyi.device.camera.service.IArdCamerasService; import com.ruoyi.device.camera.service.ICameraSdkService; import com.ruoyi.device.channel.domain.ArdChannel; import com.ruoyi.device.channel.service.IArdChannelService; -import com.ruoyi.device.terrain.domain.ArdTerrainMark; -import com.ruoyi.device.terrain.service.IArdTerrainMarkService; -import com.ruoyi.media.domain.Vtdu; import com.ruoyi.media.service.IVtduService; import com.ruoyi.utils.gis.GisUtil; import com.ruoyi.utils.minio.MinioUtil; @@ -33,11 +29,12 @@ import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; import java.nio.ByteBuffer; @@ -46,10 +43,8 @@ import java.text.DecimalFormat; import java.util.*; import java.util.concurrent.PriorityBlockingQueue; -import java.util.stream.Collectors; import static com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK.*; -import static com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK.NET_DVR_GET_GISINFO; /** * @Description: 娴峰悍sdk绛栫暐 @@ -146,7 +141,7 @@ } GlobalVariable.loginMap.put(camera.getId(), lUserID); GlobalVariable.loginCameraMap.put(lUserID, camera); - camera.setLoginId((long)lUserID); + camera.setLoginId((long) lUserID); camera.setState("1"); int chanNum = m_strDeviceInfo.struDeviceV30.byChanNum; int startDchan = m_strDeviceInfo.struDeviceV30.byStartDChan + 1; @@ -171,6 +166,8 @@ ardCamerasService.updateArdCameras(camera); //鍒涘缓寮曞闃熷垪 createGuideQueue(camera); + //鍔犲叆宸茬櫥褰曡澶囬泦鍚� + GlobalVariable.loginedSet.add(camera); return AjaxResult.success("璁惧鐧诲綍鎴愬姛"); } catch (Exception ex) { log.error("璁惧鐧诲綍寮傚父", ex); @@ -187,7 +184,7 @@ * @淇敼浜哄拰鍏跺畠淇℃伅 */ @Override - @Async("loginExecutor") + @Async("globalExecutor") public AjaxResult asyncLogin(ArdCameras camera) { try { // 鍒濆鍖� @@ -240,21 +237,10 @@ return AjaxResult.warn("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")"); } log.debug("Login Success 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�"); - synchronized (_lock) { - if (fExceptionCallBack == null) { - fExceptionCallBack = new ExceptionCallBack();//寮傚父鍥炶皟 - //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑) - if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) { - log.debug("Set fExceptionCallBack function fail"); - } else { - log.debug("Set fExceptionCallBack function successfully!"); - } - } - } GlobalVariable.loginMap.put(camera.getId(), lUserID); GlobalVariable.loginCameraMap.put(lUserID, camera); - camera.setLoginId((long)lUserID); + camera.setLoginId((long) lUserID); camera.setState("1"); int chanNum = m_strDeviceInfo.struDeviceV30.byChanNum; int startDchan = m_strDeviceInfo.struDeviceV30.byStartDChan + 1; @@ -279,6 +265,8 @@ ardCamerasService.updateArdCameras(camera); //鍒涘缓寮曞闃熷垪 createGuideQueue(camera); + //鍔犲叆宸茬櫥褰曡澶囬泦鍚� + GlobalVariable.loginedSet.add(camera); return AjaxResult.success("璁惧鐧诲綍鎴愬姛"); } catch (Exception ex) { log.error("娉ㄥ唽璁惧寮傚父", ex); @@ -310,7 +298,6 @@ } } - /** @@ -1831,9 +1818,6 @@ //鑾峰彇IP閫氶亾 public List<ArdChannel> getChannels(ArdCameras camera) { - if (camera.getLoginId().equals(-1)) { - return new ArrayList<>(); - } //鑾峰彇閫氶亾 List<ArdChannel> channelList = new ArrayList<>(); try { -- Gitblit v1.9.3