From 4163c93761115c7524ef74a557a1f5e01eafb429 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 29 八月 2024 20:30:39 +0800 Subject: [PATCH] 宇视SDK初始化 --- ycl-server/src/main/java/com/ycl/task/OsdTask.java | 33 +++++++++++++++++++++++++++++---- 1 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/task/OsdTask.java b/ycl-server/src/main/java/com/ycl/task/OsdTask.java index 511633b..4b0ce3c 100644 --- a/ycl-server/src/main/java/com/ycl/task/OsdTask.java +++ b/ycl-server/src/main/java/com/ycl/task/OsdTask.java @@ -60,7 +60,7 @@ 24, 5000, TimeUnit.SECONDS, - new ArrayBlockingQueue<>(10), + new ArrayBlockingQueue<>(1000), new ThreadPoolExecutor.CallerRunsPolicy() ); @@ -71,6 +71,7 @@ * 鍚屾鍝佺墝鍒癿ysql */ public void getOSD() { + log.info("寮�濮嬭幏鍙朞SD"); //鎵归噺淇敼娴峰悍鍝佺墝闆嗗悎 List<String> hkList = new ArrayList<>(); //鎵归噺淇敼澶у崕鍝佺墝闆嗗悎 @@ -85,16 +86,24 @@ List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList()); List<TMonitor> monitors = monitorMapper.selectByNumbers(serialNumbers); + monitors = monitors.stream().filter(monitor -> monitor.getId()<7000).collect(Collectors.toList()); + log.info("澶勭悊鏁版嵁澶у皬{}",monitors.size()); for (TMonitor monitor : monitors) { executorService.submit(() -> { if (DeviceType.HK.getType().equals(monitor.getDeviceType())) { //娴峰悍鍝佺墝 OSDResult osd = HKApi.getOsdByIP(monitor.getIp(), HKUserName, HKPassword); - if (checkSuccess(osdResultList, monitor, osd)) return; + if (checkSuccess(osdResultList, monitor, osd)){ + log.info("娴峰悍璋冪敤鎴愬姛"+osd); + return; + } } else if (DeviceType.DH.getType().equals(monitor.getDeviceType())) { //澶у崕鍝佺墝 OSDResult osd = DHApi.getOsd(monitor.getIp(), DHUserName, DHPassword); - if (checkSuccess(osdResultList, monitor, osd)) return; + if (checkSuccess(osdResultList, monitor, osd)) { + log.info("澶у崕璋冪敤鎴愬姛"+osd); + return; + } } else if (DeviceType.YS.getType().equals(monitor.getDeviceType())) { //TODO锛氬畤瑙哸pi } @@ -108,6 +117,18 @@ }); } executorService.shutdown(); + try { + // 绛夊緟鎵�鏈変换鍔″畬鎴愶紝鏈�澶氱瓑寰�10绉掞紙鍙互鏍规嵁闇�瑕佽皟鏁达級 + if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) { + // 濡傛灉瓒呮椂锛屽皾璇曞仠姝㈠綋鍓嶆鍦ㄦ墽琛岀殑浠诲姟 + executorService.shutdownNow(); + } + } catch (InterruptedException e) { + // 褰撳墠绾跨▼鍦ㄧ瓑寰呰繃绋嬩腑琚腑鏂� + executorService.shutdownNow(); + // 澶勭悊涓柇锛屼緥濡傞噸鏂版姏鍑哄紓甯告垨璁板綍鏃ュ織 + Thread.currentThread().interrupt(); // 淇濇寔涓柇鐘舵�� + } //缁撴潫api鎵ц锛屽紑濮嬫牎楠� List<OsdCheckResult> checkResults = new ArrayList<>(); Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); @@ -118,8 +139,10 @@ checkCorrect(osdResult, monitor, osdCheckResult); checkResults.add(osdCheckResult); } + log.info("缁撴灉鏁版嵁澶у皬:{}",checkResults.size()); //缁撴灉瀛樺叆mongo - if(CollectionUtils.isEmpty(checkResults)){ + if(!CollectionUtils.isEmpty(checkResults)){ + log.info("瀛樺叆mongo"); //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 Query pyQuery = new Query(Criteria .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); @@ -131,9 +154,11 @@ } //淇敼鏁版嵁搴撳搧鐗� if(!CollectionUtils.isEmpty(hkList)){ + log.info("淇敼鍝佺墝"); monitorMapper.batchUpdateDeviceType(hkList,DeviceType.HK.getType()); } if(!CollectionUtils.isEmpty(dhList)){ + log.info("淇敼鍝佺墝"); monitorMapper.batchUpdateDeviceType(dhList,DeviceType.DH.getType()); } //TODO:瀹囪 -- Gitblit v1.8.0