From d873828ae4b9d4fc6ad510513c6c3f0c33118fd8 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Tue, 30 Dec 2025 11:32:06 +0800
Subject: [PATCH] 优化
---
ard-device/src/main/java/com/ard/device/camera/service/impl/ArdCameraServiceImpl.java | 31 +++++++++++++++++--------------
1 files changed, 17 insertions(+), 14 deletions(-)
diff --git a/ard-device/src/main/java/com/ard/device/camera/service/impl/ArdCameraServiceImpl.java b/ard-device/src/main/java/com/ard/device/camera/service/impl/ArdCameraServiceImpl.java
index b8f40d8..993e729 100644
--- a/ard-device/src/main/java/com/ard/device/camera/service/impl/ArdCameraServiceImpl.java
+++ b/ard-device/src/main/java/com/ard/device/camera/service/impl/ArdCameraServiceImpl.java
@@ -163,7 +163,7 @@
ardCamera.setUpdateBy(SecurityUtils.getUsername());
int res = ardCameraMapper.updateArdCamera(ardCamera);
if (res > 0) {
- cameraSDKService.logout(ardCamera.getId());//sdk注销
+ cameraSDKService.logout(ardCamera);//sdk注销
cameraSDKService.login(ardCamera);//sdk登录获取通道信息
}
return res;
@@ -186,7 +186,7 @@
//删除当前相机的所有通道
ardChannelService.deleteArdChannelByDeviceId(id);
//sdk注销
- cameraSDKService.logout(id);
+ cameraSDKService.logout(camera);
}
}
return ardCameraMapper.deleteArdCameraByIds(ids);
@@ -207,7 +207,7 @@
//删除当前相机的所有通道
ardChannelService.deleteArdChannelByDeviceId(id);
//sdk注销
- cameraSDKService.logout(id);
+ cameraSDKService.logout(ArdCamera.builder().id(id).build());
}
return i;
}
@@ -379,7 +379,7 @@
* @author 刘苏义
* @date 2024/8/22 14:37
*/
- @Scheduled(cron = "0/10 * * * * ?")
+ @Scheduled(fixedDelay = 5000)
public void syncChannel() {
try {
log.debug("定时执行同步通道任务");
@@ -408,15 +408,20 @@
* @author 刘苏义
* @date 2024/8/22 14:37
*/
- @Scheduled(cron = "0/30 * * * * ?")
+ @Scheduled(fixedDelay = 10000)
public void failedReconnect() {
try {
log.debug("定时执行失败相机重连任务");
- List<Object> ardCameras = redisService.getListKey(CacheConstants.CAMERA_LIST_KEY);
- ardCameras.stream()
- .map(object -> (ArdCamera) object) // 将Object转换为ArdCameras
- .filter(camera -> !GlobalVariable.loginMap.containsKey(camera.getId()))
- .forEach(camera -> cameraSDKService.login(camera));
+ // 从数据库取全部设备
+ List<ArdCamera> cameraList = selectArdCameraList(new ArdCamera());
+ cameraList.stream()
+ // 只处理登录失败或离线的设备
+ .filter(camera -> camera.getLoginId() == null || camera.getLoginId() < 0 || "0".equals(camera.getState()))
+ .forEach(camera -> {
+ log.info("尝试重新登录设备 {}:{}", camera.getIp(), camera.getPort());
+ cameraSDKService.login(camera);
+ });
+
} catch (Exception ex) {
log.error("定时执行失败相机重连任务异常:{}", ex.getMessage());
}
@@ -427,7 +432,7 @@
* 刘苏义
* 2023/10/8 14:54:41
*/
- @Scheduled(cron = "0/10 * * * * ?")
+ @Scheduled(fixedDelay = 5000)
public void cameraState() {
try {
log.debug("定时执行同步相机在线状态任务");
@@ -435,9 +440,7 @@
List<ArdCamera> ardCameraList = selectArdCameraList(new ArdCamera());
ardCameraList
.forEach(camera -> {
- CameraCmd cmd = new CameraCmd();
- cmd.setCameraId(camera.getId());
- boolean onLineNew = cameraSDKService.isOnLine(cmd);
+ boolean onLineNew = cameraSDKService.isOnLine(camera);
boolean onLineOld = "1".equals(camera.getState());
if (onLineNew != onLineOld) {
if (onLineNew) {
--
Gitblit v1.9.3