zj
2024-10-11 f07b9f6d18cd85123a01a0c11a76328427b30034
Merge remote-tracking branch 'origin/master'
2 files modified
14 ■■■■ changed files
websocketSerivce/src/main/java/org/example/websocket/config/AsyncConfiguration.java 4 ●●●● patch | view | raw | blame | history
websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java 10 ●●●●● patch | view | raw | blame | history
websocketSerivce/src/main/java/org/example/websocket/config/AsyncConfiguration.java
@@ -17,8 +17,8 @@
    @Bean(name = "threadPoolTaskExecutor")
    public ThreadPoolTaskExecutor threadPoolTaskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(5);    //  核心线程数
        executor.setMaxPoolSize(100);    //  最大线程数
        executor.setCorePoolSize(100);    //  核心线程数
        executor.setMaxPoolSize(200);    //  最大线程数
        executor.setQueueCapacity(300);    //  队列容量
        executor.setKeepAliveSeconds(60);    //  线程空闲时的存活时间为60秒
        executor.setThreadNamePrefix("MyThread-");    //  线程名称的前缀
websocketSerivce/src/main/java/org/example/websocket/server/WsServer.java
@@ -17,10 +17,13 @@
import org.example.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.PreDestroy;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@@ -91,6 +94,7 @@
    @OnError
    public void onError(Session session, @NonNull Throwable throwable) {
        onClose();
        onlineCount.decrementAndGet();
        log.error("连接发生报错: {}", throwable.getMessage());
        throwable.printStackTrace();
    }
@@ -213,6 +217,12 @@
            }
        }
    }
    @PreDestroy
    public void shutdownExecutor() {
        threadPoolTaskExecutor.shutdown();
    }
    private static final Gson gson = new Gson();
    private String megFiltration(WsBo wsBo,String message) throws JsonProcessingException {
        List<MarketDataOut> redisValueMap = gson.fromJson(message, new TypeToken<List<MarketDataOut>>() {}.getType());