|
@@ -3,21 +3,17 @@ package com.backendsys.controller.api;
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
|
-import com.backendsys.aspect.CurrentLimiting;
|
|
|
|
|
|
+import com.backendsys.aspect.RateLimiting;
|
|
import com.backendsys.aspect.QueuingPoll;
|
|
import com.backendsys.aspect.QueuingPoll;
|
|
-import com.backendsys.entity.Tencent.TencentCos.UploadOriginDTO;
|
|
|
|
-import com.backendsys.service.SDKService.SDKTencent.SDKTencentCOSService;
|
|
|
|
//import com.backendsys.service.SDKService.SDKTinypng.SDKTinypngService;
|
|
//import com.backendsys.service.SDKService.SDKTinypng.SDKTinypngService;
|
|
-import com.backendsys.service.System.SysResourceService;
|
|
|
|
|
|
+import com.backendsys.service.TestService;
|
|
import com.backendsys.utils.ResourceUtil;
|
|
import com.backendsys.utils.ResourceUtil;
|
|
-import com.backendsys.utils.response.Result;
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
import cn.afterturn.easypoi.word.WordExportUtil;
|
|
import cn.afterturn.easypoi.word.WordExportUtil;
|
|
import com.backendsys.utils.MD5Util;
|
|
import com.backendsys.utils.MD5Util;
|
|
|
|
|
|
-import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
|
import org.redisson.api.*;
|
|
import org.redisson.api.*;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -25,18 +21,17 @@ import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
-import org.springframework.util.StreamUtils;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.awt.*;
|
|
import java.awt.*;
|
|
import java.io.*;
|
|
import java.io.*;
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Paths;
|
|
import java.nio.file.Paths;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.security.NoSuchAlgorithmException;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
+import java.util.concurrent.ExecutionException;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
@@ -55,33 +50,60 @@ public class TestController {
|
|
// @Autowired
|
|
// @Autowired
|
|
// private HttpTodoService httpTodoService;
|
|
// private HttpTodoService httpTodoService;
|
|
|
|
|
|
- @PostMapping("testWebHook")
|
|
|
|
- public Result testWebHook(@RequestBody Map<String, Object> requestBody, HttpServletRequest request) {
|
|
|
|
- System.out.println("------- testWebHook --------");
|
|
|
|
-// try {
|
|
|
|
-// String requestBody = StreamUtils.copyToString(request.getInputStream(), StandardCharsets.UTF_8);
|
|
|
|
-// System.out.println(requestBody);
|
|
|
|
-// } catch (IOException e) {
|
|
|
|
-// e.printStackTrace();
|
|
|
|
-// }
|
|
|
|
- System.out.println("===========================================");
|
|
|
|
- System.out.println("requestBody:");
|
|
|
|
- System.out.println(requestBody);
|
|
|
|
- System.out.println("----------------------------");
|
|
|
|
- System.out.println("requestBody (JSON):");
|
|
|
|
- System.out.println(JSONUtil.parseObj(requestBody));
|
|
|
|
- System.out.println("----------------------------");
|
|
|
|
- String token = request.getHeader("X-Codeup-Token");
|
|
|
|
- System.out.println("X-Codeup-Token: " + token);
|
|
|
|
- System.out.println("===========================================");
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
|
|
+// @PostMapping("testWebHook")
|
|
|
|
+// public Result testWebHook(@RequestBody Map<String, Object> requestBody, HttpServletRequest request) {
|
|
|
|
+// System.out.println("------- testWebHook --------");
|
|
|
|
+//// try {
|
|
|
|
+//// String requestBody = StreamUtils.copyToString(request.getInputStream(), StandardCharsets.UTF_8);
|
|
|
|
+//// System.out.println(requestBody);
|
|
|
|
+//// } catch (IOException e) {
|
|
|
|
+//// e.printStackTrace();
|
|
|
|
+//// }
|
|
|
|
+// System.out.println("===========================================");
|
|
|
|
+// System.out.println("requestBody:");
|
|
|
|
+// System.out.println(requestBody);
|
|
|
|
+// System.out.println("----------------------------");
|
|
|
|
+// System.out.println("requestBody (JSON):");
|
|
|
|
+// System.out.println(JSONUtil.parseObj(requestBody));
|
|
|
|
+// System.out.println("----------------------------");
|
|
|
|
+// String token = request.getHeader("X-Codeup-Token");
|
|
|
|
+// System.out.println("X-Codeup-Token: " + token);
|
|
|
|
+// System.out.println("===========================================");
|
|
|
|
+// return null;
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private TestService testService;
|
|
|
|
|
|
|
|
+ @GetMapping("testThreadPool")
|
|
|
|
+ public String testThreadPool() throws ExecutionException, InterruptedException {
|
|
|
|
+ testService.testThreadPool();
|
|
|
|
+ return "ok";
|
|
|
|
+ }
|
|
|
|
|
|
- @CurrentLimiting(count = 2, time = 10)
|
|
|
|
|
|
+
|
|
|
|
+ @RateLimiting(key = "test", limit = 5, duration = 10)
|
|
@GetMapping("testSemaphore")
|
|
@GetMapping("testSemaphore")
|
|
public String testSemaphore() {
|
|
public String testSemaphore() {
|
|
|
|
+
|
|
|
|
+// Semaphore semaphore = new Semaphore(2);
|
|
|
|
+// try {
|
|
|
|
+// // 尝试获取一个许可
|
|
|
|
+// semaphore.acquire();
|
|
|
|
+// // 模拟服务操作
|
|
|
|
+// System.out.println("服务被访问,当前活跃线程数:" + semaphore.availablePermits());
|
|
|
|
+// // 假设服务操作需要一些时间
|
|
|
|
+// Thread.sleep(5000);
|
|
|
|
+// } catch (InterruptedException e) {
|
|
|
|
+// Thread.currentThread().interrupt();
|
|
|
|
+// System.out.println("线程被中断");
|
|
|
|
+// } finally {
|
|
|
|
+// // 释放许可
|
|
|
|
+// semaphore.release();
|
|
|
|
+// System.out.println("服务访问结束,释放许可,当前活跃线程数:" + semaphore.availablePermits());
|
|
|
|
+// }
|
|
|
|
+
|
|
return "ok";
|
|
return "ok";
|
|
}
|
|
}
|
|
|
|
|