|
@@ -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();
|
|
|
+// }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|