From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 24 六月 2025 14:09:07 +0800
Subject: [PATCH] 每日录像可用指标添加日志,修改大屏为查看当前月平均

---
 ycl-server/src/main/java/com/ycl/task/PlatformTask.java |   44 +++++++++++++++++++++++++-------------------
 1 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/task/PlatformTask.java b/ycl-server/src/main/java/com/ycl/task/PlatformTask.java
index 6c8fbd4..88a6f7c 100644
--- a/ycl-server/src/main/java/com/ycl/task/PlatformTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/PlatformTask.java
@@ -12,8 +12,11 @@
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 
+import javax.swing.text.DateFormatter;
 import java.io.IOException;
 import java.net.InetAddress;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -44,11 +47,11 @@
 
     private static final String DICT_TYPE = "platform_online";
 
-    private static final ExecutorService executorService = new ThreadPoolExecutor(8,
-            24,
+    private static final ExecutorService executorService = new ThreadPoolExecutor(16,
+            64,
             5000,
             TimeUnit.SECONDS,
-            new ArrayBlockingQueue<>(10),
+            new ArrayBlockingQueue<>(1000),
             new ThreadPoolExecutor.CallerRunsPolicy()
     );
 
@@ -68,20 +71,23 @@
                     for (int tryTimes = 1; tryTimes < 3; tryTimes++) {
                         // 涓夌鏈猵ing閫氶噸璇曚竴娆★紝濡傛灉涓嶈鎵嶆墸鍒�
                         reachable = InetAddress.getByName(platform.getPlatformIP()).isReachable(3000);
-                        if (! reachable && tryTimes == 0) {
-                            continue;
-                        }
-                        if (! reachable) {
-                            // 濡傛灉ping涓嶉�氾紝绂荤嚎鏃堕暱鍔�5绉�
-                            redisTemplate.opsForValue().increment(REDIS_KEY_PREFIX + platform.getPlatformIP(), 5);
-                            log.warn(platform.getPlatformName() + "骞冲彴鏈猵ing閫�");
+                        if (reachable) {
+                            break;
                         }
                     }
+                    if (!reachable) {
+                        // 濡傛灉ping涓嶉�氾紝绂荤嚎鏃堕暱鍔�5绉�
+                        LocalDateTime localDateTime = LocalDateTime.now();
+                        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                        String todayTime = localDateTime.format(dateTimeFormatter);
+                        //姣忔redis绱5s
+                        redisTemplate.opsForValue().increment(REDIS_KEY_PREFIX + todayTime + platform.getPlatformIP(), 5);
+                        log.warn(platform.getPlatformName() + "骞冲彴鏈猵ing閫�");
+                    }
                 } catch (Exception e) {
-                    log.error("妫�鏌ュ钩鍙拌繛閫氭�ф椂鍙戠敓閿欒", e);
+                    log.error("妫�鏌ュ钩鍙拌繛閫氭�ф椂鍙戠敓d閿欒", e);
                 }
             });
-            executorService.shutdown();
         }
     }
 
@@ -95,25 +101,25 @@
                 .list();
         // 灏唈ava.util.Date杞崲涓簀ava.sql.Date
         java.sql.Date sqlDate = new java.sql.Date(new Date().getTime());
-
+        LocalDateTime localDateTime = LocalDateTime.now();
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String todayTime = localDateTime.format(dateTimeFormatter);
         for (Platform platform : platformList) {
-            Object outLineTime = redisTemplate.opsForValue().get(REDIS_KEY_PREFIX + platform.getPlatformIP());
+            Object outLineTime = redisTemplate.opsForValue().get(REDIS_KEY_PREFIX + todayTime + platform.getPlatformIP());
             Integer outlineTimeSed = Objects.isNull(outLineTime) ? 0 : (Integer) outLineTime;
             PlatformOnline one = new LambdaQueryChainWrapper<>(platformOnlineService.getBaseMapper())
-                    .eq(PlatformOnline::getPlatformIp, platform.getPlatformIP())
+                    .eq(PlatformOnline::getPlatformId, platform.getId())
                     .eq(PlatformOnline::getCreateDate, sqlDate)
                     .one();
             if (Objects.isNull(one)) {
                 one = new PlatformOnline();
-                one.setPlatformIp(platform.getPlatformIP());
-                one.setPlatformName(platform.getPlatformName());
+                one.setPlatformId(platform.getId());
                 one.setCreateDate(sqlDate);
                 one.setTodayOutlineSed(outlineTimeSed);
             } else {
                 one.setTodayOutlineSed(one.getTodayOutlineSed() + outlineTimeSed);
             }
-            one.setPlatformIp(platform.getPlatformIP());
-            one.setPlatformName(platform.getPlatformName());
+            one.setPlatformId(platform.getId());
             one.setCreateDate(sqlDate);
 
             platformOnlineService.saveOrUpdate(one);

--
Gitblit v1.8.0