liusuyi
2024-08-10 5b017324148ea92d96f9f16ade215463d6c712e5
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -33,6 +33,9 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -70,6 +73,23 @@
            ardCamerasService.resetCameraLoginId();
            List<ArdCameras> ardCameras = ardCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
            ardCameras.stream().forEach(ardCamera -> asyncLogin(ardCamera));
            //开启登录失败相机重连定时任务
            ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
            executor.scheduleAtFixedRate(new Runnable() {
                @Override
                public void run() {
                    try {
                        log.info("开始执行登录失败相机重连定时任务");
                        List<Object> ardCameras = redisCache.getListKey(CacheConstants.CAMERA_LIST_KEY);
                        ardCameras.stream()
                                .map(object -> (ArdCameras) object) // 将Object转换为ArdCameras
                                .filter(camera -> !GlobalVariable.loginMap.containsKey(camera.getId()))
                                .forEach(camera -> asyncLogin(camera));
                    } catch (Exception ex) {
                        log.error("重连相机异常:" + ex.getMessage());
                    }
                }
            }, 30, 30, TimeUnit.SECONDS);  // 任务延迟
        } catch (Exception ex) {
            log.error("初始化登录相机异常:" + ex.getMessage());
        }