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/service/IDeviceService.java |   64 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
index 72af803..d977c47 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IDeviceService.java
@@ -1,7 +1,11 @@
 package com.genersoft.iot.vmp.service;
 
 import com.genersoft.iot.vmp.gb28181.bean.Device;
+import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
+import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
 import com.genersoft.iot.vmp.gb28181.bean.SyncStatus;
+import com.genersoft.iot.vmp.vmanager.bean.BaseTree;
+import com.genersoft.iot.vmp.vmanager.bean.ResourceBaceInfo;
 
 import java.util.List;
 
@@ -15,13 +19,13 @@
      * 璁惧涓婄嚎
      * @param device 璁惧淇℃伅
      */
-    void online(Device device);
+    void online(Device device, SipTransactionInfo sipTransactionInfo);
 
     /**
      * 璁惧涓嬬嚎
      * @param deviceId 璁惧缂栧彿
      */
-    void offline(String deviceId);
+    void offline(String deviceId, String reason);
 
     /**
      * 娣诲姞鐩綍璁㈤槄
@@ -76,7 +80,7 @@
      * @param deviceId 璁惧缂栧彿
      * @return 璁惧淇℃伅
      */
-    Device queryDevice(String deviceId);
+    Device getDevice(String deviceId);
 
     /**
      * 鑾峰彇鎵�鏈夊湪绾胯澶�
@@ -110,4 +114,58 @@
      * @param device 璁惧淇℃伅
      */
     void updateDevice(Device device);
+
+    /**
+     * 鏍戝舰鏌ヨ鎺ュ彛
+     * @param deviceId 璁惧ID
+     * @param parentId 鐖禝D
+     * @param onlyCatalog 鍙幏鍙栫洰褰�
+     * @return
+     */
+    List<BaseTree<DeviceChannel>> queryVideoDeviceTree(String deviceId, String parentId, boolean onlyCatalog);
+
+    /**
+     * 鏌ヨ鏍戣妭鐐逛笅鐨勯�氶亾
+     * @param deviceId 璁惧ID
+     * @param parentId 鐖禝D
+     * @return
+     */
+    List<DeviceChannel> queryVideoDeviceInTreeNode(String deviceId, String parentId);
+
+    /**
+     * 妫�鏌ヨ澶囩紪鍙锋槸鍚﹀凡缁忓瓨鍦�
+     * @param deviceId 璁惧缂栧彿
+     * @return
+     */
+    boolean isExist(String deviceId);
+
+    /**
+     * 娣诲姞璁惧
+     * @param device
+     */
+    void addDevice(Device device);
+
+    /**
+     * 椤甸潰琛ㄥ崟鏇存柊璁惧淇℃伅
+     * @param device
+     */
+    void updateCustomDevice(Device device);
+
+    /**
+     * 鍒犻櫎璁惧
+     * @param deviceId
+     * @return
+     */
+    boolean delete(String deviceId);
+
+    /**
+     * 鑾峰彇缁熻淇℃伅
+     * @return
+     */
+    ResourceBaceInfo getOverview();
+
+    /**
+     * 鑾峰彇鎵�鏈夎澶�
+     */
+    List<Device> getAll();
 }

--
Gitblit v1.8.0