zyl 3 months ago
parent
commit
4923805842

+ 29 - 19
src/main/java/com/citygis/controller/TongJiController.java

@@ -14,31 +14,31 @@ public class TongJiController {
 
     @Resource
     TongJiService tongJiService;
-
-    @GetMapping("/getErrorCount")
-    public void getErrorCount() {
-        tongJiService.getErrorCount();
-    }
-
-    @GetMapping("/getSucceesCount")
-    public void getSucceesCount() {
-        tongJiService.getSucceesCount();
-    }
-
-    @GetMapping("/getResponseTimeBig")
-    public void getResponseTimeBig() {
-        tongJiService.getResponseTimeBig();
-    }
+//
+//    @GetMapping("/getErrorCount")
+//    public void getErrorCount() {
+//        tongJiService.getErrorCount();
+//    }
+//
+//    @GetMapping("/getSucceesCount")
+//    public void getSucceesCount() {
+//        tongJiService.getSucceesCount();
+//    }
+//
+//    @GetMapping("/getResponseTimeBig")
+//    public void getResponseTimeBig() {
+//        tongJiService.getResponseTimeBig();
+//    }
 
     @GetMapping("/getResponseTime")
     public void getResponseTime() {
         tongJiService.getResponseTime();
     }
 
-    @GetMapping("/getCount")
-    public void getCount() {
-        tongJiService.getCount();
-    }
+//    @GetMapping("/getCount")
+//    public void getCount() {
+//        tongJiService.getCount();
+//    }
 
     @GetMapping("/getUrl")
     public void getUrl() {
@@ -55,5 +55,15 @@ public class TongJiController {
         tongJiService.meo();
     }
 
+    @GetMapping("/delTabTongJi")
+    public void delTabTongJi() {
+        tongJiService.delTabTongJi();
+    }
+
+    @GetMapping("/cputest")
+    public void cputest() {
+        tongJiService.cputest();
+    }
+
 
 }

+ 141 - 66
src/main/java/com/citygis/impl/TongJiServiceImpl.java

@@ -4,12 +4,15 @@ import cn.hutool.core.util.RandomUtil;
 import com.citygis.mapper.TongJiMapper;
 import com.citygis.pojo.Tab_log2;
 import com.citygis.serivce.TongJiService;
+import com.sun.management.OperatingSystemMXBean;
 import lombok.Synchronized;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.lang.management.ManagementFactory;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 import java.nio.file.FileSystems;
@@ -19,6 +22,9 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Random;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Service
@@ -27,90 +33,103 @@ public class TongJiServiceImpl implements TongJiService {
     @Resource
     TongJiMapper tongJiMapper;
 
-    @Override
-    @Scheduled(cron = "0 0 * * * ?")
-    public void getErrorCount() {
-        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
-
-        List<Tab_log2> collect = new ArrayList<>();
-
-        collect = tabLog2s.stream()
-                .filter(tabLog2 -> !tabLog2.getStatus().equals("HTTP/1.1 200"))
-                .collect(Collectors.toList());
-
-        System.out.println("请求失败");
-        collect.forEach(System.out::println);
-    }
-
-    @Override
-    @Scheduled(cron = "0 0 * * * ?")
-    public void getSucceesCount() {
-        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
-
-        List<Tab_log2> collect = new ArrayList<>();
-        collect = tabLog2s.stream()
-                .filter(tabLog2 -> tabLog2.getStatus().equals("HTTP/1.1 200"))
-                .collect(Collectors.toList());
-
-        System.out.println("请求成功");
-
-        collect.forEach(System.out::println);
-    }
-
+    @Value("${custom.treadNum}")
+    private Integer treadNum;
+
+    @Value("${custom.zhixingnum}")
+    private Integer zhixingnum;
+
+    @Value("${custom.stop}")
+    private Integer stop;
+
+    @Value("${custom.zuixiao}")
+    private Integer zuixiao;
+
+    @Value("${custom.zuida}")
+    private Integer zuida;
+
+    @Value("${custom.kaishixianzhi}")
+    private Integer kaishixianzhi;
+
+//    @Override
+//    @Scheduled(cron = "0 0 * * * ?")
+//    public void getErrorCount() {
+//        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
+//
+//        List<Tab_log2> collect = new ArrayList<>();
+//
+//        collect = tabLog2s.stream()
+//                .filter(tabLog2 -> !tabLog2.getStatus().equals("HTTP/1.1 200"))
+//                .collect(Collectors.toList());
+//
+//        System.out.println("请求失败");
+//        collect.forEach(System.out::println);
+//    }
+
+//    @Override
+//    @Scheduled(cron = "0 0 * * * ?")
+//    public void getSucceesCount() {
+//        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
+//
+//        List<Tab_log2> collect = new ArrayList<>();
+//        collect = tabLog2s.stream()
+//                .filter(tabLog2 -> tabLog2.getStatus().equals("HTTP/1.1 200"))
+//                .collect(Collectors.toList());
+//
+//        System.out.println("请求成功");
+//
+//        collect.forEach(System.out::println);
+//    }
+
+
+//    @Override
+//    @Scheduled(cron = "0 0 * * * ?")
+//    public void getResponseTimeBig() {
+//        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
+//
+//        List<Tab_log2> collect = new ArrayList<>();
+//        collect = tabLog2s.stream()
+//                .filter(tabLog2 -> tabLog2.getResponseTime() != null && Integer.parseInt(tabLog2.getResponseTime()) >= 1000)
+//                .collect(Collectors.toList());
+//
+//        System.out.println("响应时间大于1s");
+//        collect.forEach(System.out::println);
+//    }
 
     @Override
-    @Scheduled(cron = "0 0 * * * ?")
-    public void getResponseTimeBig() {
-        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
-
-        List<Tab_log2> collect = new ArrayList<>();
-        collect = tabLog2s.stream()
-                .filter(tabLog2 -> tabLog2.getResponseTime() != null && Integer.parseInt(tabLog2.getResponseTime()) >= 1000)
-                .collect(Collectors.toList());
-
-        System.out.println("响应时间大于1s");
-        collect.forEach(System.out::println);
-    }
-
-    @Override
-    @Scheduled(cron = "0 0 9-17 * * ?")
+    @Scheduled(cron = "0 0/3 9-17 * * ?")
     public void getResponseTime() {
-        List<Tab_log2> tabLog2s = tongJiMapper.getTabLog();
-
-        List<Tab_log2> collect = new ArrayList<>();
-        collect = tabLog2s.stream()
-                .filter(tabLog2 -> tabLog2.getResponseTime() != null && Integer.parseInt(tabLog2.getResponseTime()) < 1000)
-                .collect(Collectors.toList());
-
-        System.out.println("响应时间小于1s");
-        collect.forEach(System.out::println);
+        int i = RandomUtil.randomInt(1000, 20000);
+        List<Tab_log2> tabLog2s = tongJiMapper.getCount(i);
+        tabLog2s.forEach(tabLog2 -> System.out.println("1" + tabLog2));
     }
 
 
-    @Override
-    @Scheduled(cron = "0 0/3 * * * ?")
-    public void getCount() {
-        int i = RandomUtil.randomInt(10000, 50000);
-        List<Tab_log2> tabLog2s = tongJiMapper.getCount(i);
-        tabLog2s.forEach(System.out::println);
-    }
+//    @Override
+//    @Scheduled(cron = "0 0/3 * * * ?")
+//    public void getCount() {
+//        int i = RandomUtil.randomInt(10000, 50000);
+//        List<Tab_log2> tabLog2s = tongJiMapper.getCount(i);
+//        tabLog2s.forEach(System.out::println);
+//    }
 
     @Override
     @Scheduled(cron = "0 0/5 * * * ?")
     public void getUrl() {
-        int i = RandomUtil.randomInt(1, 100);
-        if (i >= 50) {
+        int i = RandomUtil.randomInt(200);
+        if (i >= 100) {
             List<Tab_log2> tabLog2s = tongJiMapper.getOneCount();
-            tabLog2s.forEach(System.out::println);
+            tabLog2s.forEach(tabLog2 -> System.out.println("2" + tabLog2));
         }
     }
 
     @Override
-    @Scheduled(cron = "0 0/10 * * * ?")
+    @Scheduled(cron = "0 0 * * * ?")
     public void setTabTonaJi() {
-        int i = RandomUtil.randomInt(1000);
+        int i = RandomUtil.randomInt(30000);
         List<Tab_log2> twoCount = tongJiMapper.getTwoCount(i);
         twoCount.forEach(tabLog2 -> {
+            System.out.println("3");
             tongJiMapper.setTabTongJi(tabLog2);
         });
     }
@@ -155,4 +174,60 @@ public class TongJiServiceImpl implements TongJiService {
         }
     }
 
+    @Override
+    @Scheduled(cron = "0 0 1 * * ?")
+    public void delTabTongJi() {
+        tongJiMapper.delTabTongJi();
+    }
+
+
+    @Scheduled(cron = "0/20 * * * * ?")
+    public void cputest() {
+        int i1 = RandomUtil.randomInt(100);
+
+        int i2 = RandomUtil.randomInt(zuixiao, zuida);
+
+        if (i1 > kaishixianzhi) {
+
+            // 获取系统CPU负载
+            ExecutorService executor = Executors.newFixedThreadPool(1);
+            OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class);
+            double cpuLoad = osBean.getSystemCpuLoad() * 100;
+
+
+            // 如果CPU使用率低于指定阈值,则生成CPU占用任务
+            if (cpuLoad < stop) {
+                // 任务持续时间(单位:毫秒)和空闲时间(单位:毫秒)
+                long busyTime = zhixingnum;
+                long idleTime = 600;
+
+                // 提交多个任务到线程池
+                for (int i = 0; i < i2; i++) {
+                    executor.execute(() -> {
+                        long startTime = System.currentTimeMillis();
+                        while (System.currentTimeMillis() - startTime < busyTime) {
+                            // 模拟CPU占用任务
+                            double a = Math.PI * Math.E * Math.E * Math.E % 3;
+                        }
+                        // 任务执行完成后,可以选择休眠一段时间来模拟空闲状态
+                        try {
+                            Thread.sleep(idleTime);
+                        } catch (InterruptedException e) {
+                            Thread.currentThread().interrupt();
+                        }
+                    });
+                }
+                executor.shutdown();
+                executor.shutdownNow();
+//            try {
+//                // 等待所有任务完成,最多等待60秒
+//                if (!executor.awaitTermination(60, TimeUnit.SECONDS)) {
+//                    executor.shutdownNow(); // 强制关闭线程池
+//                }
+//            } catch (InterruptedException e) {
+//                executor.shutdownNow();
+//            }
+            }
+        }
+    }
 }

+ 10 - 6
src/main/java/com/citygis/serivce/TongJiService.java

@@ -7,19 +7,23 @@ import java.util.List;
 
 public interface TongJiService {
 
-    void getErrorCount();
-
-    void getSucceesCount();
-
-    void getResponseTimeBig();
+//    void getErrorCount();
+//
+//    void getSucceesCount();
+//
+//    void getResponseTimeBig();
 
     void getResponseTime();
 
-    void getCount();
+//    void getCount();
 
     void getUrl();
 
     void setTabTonaJi();
 
     void meo();
+
+    void delTabTongJi();
+
+    void cputest();
 }

+ 8 - 0
src/main/resources/application.yml

@@ -19,3 +19,11 @@ mybatis-plus:
 server:
   port: 7795
 
+custom:
+  treadNum: 100
+  zhixingnum: 100000
+  stop: 20
+  zuixiao: 100000
+  zuida: 500000
+  kaishixianzhi: 60
+