From 8f5af2af68be8f4ef401c3aeb8140f00daab94ec Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Tue, 16 Apr 2024 00:50:52 +0800 Subject: [PATCH] 123 --- .../com/ruoyi/test/business/AgoreTest.java | 9 ++++- .../ruoyi/cai/executor/ExecutorConstant.java | 7 +++- .../ruoyi/cai/mq/config/RabbitMqConfig.java | 5 ++- .../main/java/com/ruoyi/cai/trd/Agora.java | 26 +++++++++++-- .../framework/config/ThreadPoolConfig.java | 3 +- .../com/ruoyi/controller/IndexController.java | 1 + .../java/com/ruoyi/yunxin/YunExecutor.java | 4 +- .../yunxin/config/YunxinExecutorConstant.java | 38 ------------------- 8 files changed, 45 insertions(+), 48 deletions(-) delete mode 100644 ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/config/YunxinExecutorConstant.java diff --git a/ruoyi-admin/src/test/java/com/ruoyi/test/business/AgoreTest.java b/ruoyi-admin/src/test/java/com/ruoyi/test/business/AgoreTest.java index bfa57250..e925132d 100644 --- a/ruoyi-admin/src/test/java/com/ruoyi/test/business/AgoreTest.java +++ b/ruoyi-admin/src/test/java/com/ruoyi/test/business/AgoreTest.java @@ -1,11 +1,14 @@ package com.ruoyi.test.business; +import com.alibaba.fastjson.JSON; import com.ruoyi.cai.trd.Agora; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import java.util.List; + @SpringBootTest @Slf4j public class AgoreTest { @@ -15,8 +18,12 @@ public class AgoreTest { @Test public void closeChannel(){ - Long roomId = 1779785009948024833L; + Long roomId = 1779868994539642881L; +// List channelUsers = agora.getChannelUsers(roomId); +// System.out.println(JSON.toJSONString(channelUsers)); agora.closeChannel(roomId); +// agora.closeChannelByUser(roomId,2644L); +// agora.closeChannelByUser(roomId,3324L); } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/executor/ExecutorConstant.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/executor/ExecutorConstant.java index c7e7187e..2163e61d 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/executor/ExecutorConstant.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/executor/ExecutorConstant.java @@ -12,7 +12,8 @@ import java.util.concurrent.*; */ public class ExecutorConstant { - private final static int CPU_NUM = Runtime.getRuntime().availableProcessors(); +// private final static int CPU_NUM = Runtime.getRuntime().availableProcessors(); + private final static int CPU_NUM = 6; public static Executor SYNC_EXECUTOR; @@ -48,6 +49,10 @@ public class ExecutorConstant { } + public static void main(String[] args) { + System.out.println(6 << 2); + } + private static ThreadFactory init(String nameFormat){ return new ThreadFactoryBuilder().setNameFormat(nameFormat).build(); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/config/RabbitMqConfig.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/config/RabbitMqConfig.java index b5140049..82a0c6e0 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/config/RabbitMqConfig.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mq/config/RabbitMqConfig.java @@ -10,13 +10,14 @@ import org.springframework.context.annotation.Configuration; public class RabbitMqConfig { //并发数量 - public static final int DEFAULT_CONCURRENT = Runtime.getRuntime().availableProcessors(); +// public static final int DEFAULT_CONCURRENT = Runtime.getRuntime().availableProcessors(); + public static final int DEFAULT_CONCURRENT = 6; @Bean("customContainerFactory") public SimpleRabbitListenerContainerFactory containerFactory(SimpleRabbitListenerContainerFactoryConfigurer configurer, ConnectionFactory connectionFactory) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); - factory.setConcurrentConsumers(DEFAULT_CONCURRENT*2); + factory.setConcurrentConsumers(DEFAULT_CONCURRENT); factory.setMaxConcurrentConsumers(DEFAULT_CONCURRENT*2); configurer.configure(factory, connectionFactory); return factory; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/trd/Agora.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/trd/Agora.java index 162fd1d9..7b31accb 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/trd/Agora.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/trd/Agora.java @@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.stereotype.Component; @@ -35,8 +36,8 @@ public class Agora { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); headers.set("Authorization", getAuthorizationHeader()); - HttpEntity httpEntity = new HttpEntity<>(headers); - JSONObject jsonobject = RestTemplateUtil.restTemplate.getForObject(url,JSONObject.class,httpEntity); + HttpEntity request = new HttpEntity<>(headers); + JSONObject jsonobject = RestTemplateUtil.restTemplate.exchange(url, HttpMethod.GET, request, JSONObject.class).getBody(); // "success":true,"data":{"channel_exist":true,"mode":2,"broadcasters":[1001,1025],"audience":[],"audience_total":0}} if(jsonobject == null){ return Collections.emptyList(); @@ -45,8 +46,25 @@ public class Agora { return jsonArray.toJavaList(String.class); } + + public void closeChannelByUser(Long roomId,Long uid){ + String url = "https://api.sd-rtn.com/dev/v1/kicking-rule"; + Map bodyData = new HashMap<>(); + bodyData.put("appid",agoraProperties.getAppId()); + bodyData.put("cname",roomId); + bodyData.put("uid",uid); + bodyData.put("time",0); + bodyData.put("privileges", Collections.singletonList("join_channel")); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.set("Authorization", getAuthorizationHeader()); + HttpEntity httpEntity = new HttpEntity<>(bodyData, headers); + JSONObject jsonObject = RestTemplateUtil.restTemplate.exchange(url,HttpMethod.POST, httpEntity, JSONObject.class).getBody(); + log.info("执行关闭房间号操作:roomId={},response={}",roomId, JSON.toJSONString(jsonObject)); + } + public void closeChannel(Long roomId){ - String url = "http://api.sd-rtn.com/dev/v1/kicking-rule"; + String url = "https://api.sd-rtn.com/dev/v1/kicking-rule"; Map bodyData = new HashMap<>(); bodyData.put("appid",agoraProperties.getAppId()); bodyData.put("cname",roomId); @@ -56,7 +74,7 @@ public class Agora { headers.setContentType(MediaType.APPLICATION_JSON); headers.set("Authorization", getAuthorizationHeader()); HttpEntity httpEntity = new HttpEntity<>(bodyData, headers); - JSONObject jsonObject = RestTemplateUtil.restTemplate.postForObject(url, httpEntity, JSONObject.class); + JSONObject jsonObject = RestTemplateUtil.restTemplate.exchange(url,HttpMethod.POST, httpEntity, JSONObject.class).getBody(); log.info("执行关闭房间号操作:roomId={},response={}",roomId, JSON.toJSONString(jsonObject)); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java index a85ad1e5..cb5b99da 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java @@ -24,7 +24,8 @@ public class ThreadPoolConfig { /** * 核心线程数 = cpu 核心数 + 1 */ - private final int core = Runtime.getRuntime().availableProcessors() + 1; +// private final int core = Runtime.getRuntime().availableProcessors() + 1; + private final int core = 6 + 1; @Autowired private ThreadPoolProperties threadPoolProperties; diff --git a/ruoyi-websocket-boot/src/main/java/com/ruoyi/controller/IndexController.java b/ruoyi-websocket-boot/src/main/java/com/ruoyi/controller/IndexController.java index 59178a3c..dd73e9f3 100644 --- a/ruoyi-websocket-boot/src/main/java/com/ruoyi/controller/IndexController.java +++ b/ruoyi-websocket-boot/src/main/java/com/ruoyi/controller/IndexController.java @@ -1,6 +1,7 @@ package com.ruoyi.controller; import cn.dev33.satoken.annotation.SaIgnore; +import com.ruoyi.cai.ws.holder.WebSocketSessionHolder; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/YunExecutor.java b/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/YunExecutor.java index eb697f90..8ce421e8 100644 --- a/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/YunExecutor.java +++ b/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/YunExecutor.java @@ -12,7 +12,9 @@ import java.util.concurrent.*; */ public class YunExecutor { - private final static int CPU_NUM = Runtime.getRuntime().availableProcessors(); +// private final static int CPU_NUM = Runtime.getRuntime().availableProcessors(); + + private final static int CPU_NUM = 5; public static Executor YUN_EXECUTOR; diff --git a/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/config/YunxinExecutorConstant.java b/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/config/YunxinExecutorConstant.java deleted file mode 100644 index 336f4adf..00000000 --- a/ruoyi-yunxin/src/main/java/com/ruoyi/yunxin/config/YunxinExecutorConstant.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.ruoyi.yunxin.config; - -import com.alibaba.ttl.threadpool.TtlExecutors; -import com.google.common.util.concurrent.ThreadFactoryBuilder; - -import java.util.concurrent.*; - -/** - * 线程变量定义 - *

created on 2023/3/3 11:16

- * @author ZL - */ -public class YunxinExecutorConstant { - - private final static int CPU_NUM = Runtime.getRuntime().availableProcessors(); - public static Executor COMMON_EXECUTOR; - - static { - ThreadPoolExecutor commonExecutor = new ThreadPoolExecutor(CPU_NUM, - CPU_NUM << 2, - 5, - TimeUnit.SECONDS, - new ArrayBlockingQueue<>(50), - init("commonThreadPool-%d"), - new ThreadPoolExecutor.CallerRunsPolicy()); - COMMON_EXECUTOR = TtlExecutors.getTtlExecutor(commonExecutor); - } - - private static ThreadFactory init(String nameFormat){ - return new ThreadFactoryBuilder().setNameFormat(nameFormat).build(); - } - - private static ThreadPoolExecutor initExecutor(int corePoolSize, int maxPoolSize, int keepAliveTime, TimeUnit timeUnit, - BlockingQueue workQueue, String nameFormat){ - return new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime, timeUnit, workQueue, - init(nameFormat)); - } -}