Explorar el Código

1.websocket 日志— qlm

qlm hace 4 años
padre
commit
b47fd0a8f2

+ 13 - 1
src/main/java/com/zx/dataservice/config/ActiveConfig.java

@@ -41,7 +41,19 @@ public class ActiveConfig {
                         "  PRIMARY KEY (`id`) USING BTREE\n" +
                         ") ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; ");
 
-
+                String tableNamenowHist = "risk_control_formula_" + record.getStr("riskkey").toLowerCase() ;
+                Db.use("gp").update("CREATE TABLE "+tableNamenowHist+"  (\n" +
+                        "  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',\n" +
+                        "  `code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '指数代码',\n" +
+                        "  `minimumFluctuation` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最小波动',\n" +
+                        "  `riskControl` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '风控参数',\n" +
+                        "  `status` int(11) NULL DEFAULT NULL COMMENT '状态',\n" +
+                        "  `startTime` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开始时间',\n" +
+                        "  `endTime` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '结束时间',\n" +
+                        "  `tocode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新币/股 code ',\n" +
+                        "  `multiples` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '倍数',\n" +
+                        "  PRIMARY KEY (`id`) USING BTREE\n" +
+                        ") ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;");
 
             }else {// 初始化备份表
                 List<Record> recordRiskList = Db.use("gp").find("select id,code,tocode,minimumFluctuation as mini,multiples,riskControl as risk,status  from risk_control_formula_"+record.getStr("riskkey").toLowerCase());

+ 15 - 0
src/main/java/com/zx/dataservice/controller/WebSocketController.java

@@ -208,6 +208,20 @@ public class WebSocketController {
         }
     }
 
+    public static void soutLog(){
+        for(String key:map.keySet()){
+            Session session = map.get(key);
+            String a = "";
+            if(session!=null&&session.isOpen()){
+                a =  "还在还在";
+            }else {
+                a = "已经挂掉了不在了" ;
+                map.remove(key);
+            }
+            System.out.println(DateUtils.getCurrentTimeSSS()+"存在的连接有*"+key+"***"+a);
+        }
+    }
+
     /**
      *根据订阅发送消息
      */
@@ -215,6 +229,7 @@ public class WebSocketController {
         try{
             for(String key:map.keySet()){
                 Session session = map.get(key);
+                // 每个小时打印 还在的 连接
                 if(session!=null&&session.isOpen()&& StringUtils.isNotBlank(WSOptions.get(key))){
                     if(WSOptions.get(key).split("_")[1].toLowerCase().equals("ALL".toLowerCase())||WSOptions.get(key).split("_")[1].toLowerCase().equals(type.toLowerCase())){ // 推送所有
                         // 推送对应的 风控 记录

+ 4 - 1
src/main/java/com/zx/dataservice/service/impl/ChoiceTempIndexServiceImpl.java

@@ -79,6 +79,9 @@ public class ChoiceTempIndexServiceImpl implements ChoiceTempIndexService {
                 try {
                     stockRestPojo = new StockRestPojo();
                     stockRestPojo.setDate(String.valueOf(entry.getValue().get(0)));
+                    if(String.valueOf(entry.getValue().get(0)).equals("0")){
+                        continue;
+                    }
                     if(String.valueOf(entry.getValue().get(1)).equals("0")){
                         continue;
                     }
@@ -201,7 +204,7 @@ public class ChoiceTempIndexServiceImpl implements ChoiceTempIndexService {
                             if(DataOptions.get("keyall").contains((WSOptions.get(key2).split("_")[0]+"_"+entry.getKey().toUpperCase()))){  // 存在该用户的该股票的风控 记录
                                 for (String key : DataOptions.keySet()) {  // 所有的需要风控的 客户  BTC_BTC_hy  LTC_hy  000001.SZ_hy  LTC_test  test_BTC_BTC
                                     // 风控 逻辑
-                                    if (key.contains(entry.getKey())) {// 存在该股票的风控  LTC_hy . contains (LTC)
+                                    if (key.contains((WSOptions.get(key2).split("_")[0]+"_"+entry.getKey().toUpperCase()))) {// 存在该股票的风控  LTC_hy . contains (LTC)
                                         StockRestPojo stockRestPojoRisk = getRiskNow(stockRestPojo, key, DataOptions.get(key)); // 风控后的数据 //tocode & mini & risk & multiples & status
                                         stockRestPojoList.add(stockRestPojoRisk);
                                         stockRestRedisVO = new StockRestRedisVO();

+ 20 - 0
src/main/java/com/zx/dataservice/task/AnalysisRiskDataTask.java

@@ -2,6 +2,7 @@ package com.zx.dataservice.task;
 
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
+import com.zx.dataservice.controller.WebSocketController;
 import com.zx.dataservice.options.DataOptions;
 import com.zx.dataservice.options.RiskOptions;
 import com.zx.dataservice.service.ChoiceHisService;
@@ -45,6 +46,20 @@ public class AnalysisRiskDataTask {
                         "  `multiples` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '倍数',\n" +
                         "  PRIMARY KEY (`id`) USING BTREE\n" +
                         ") ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; ");
+
+                String tableNamenowHist = "risk_control_formula_" + record.getStr("riskkey").toLowerCase() ;
+                Db.use("gp").update("CREATE TABLE "+tableNamenowHist+"  (\n" +
+                        "  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',\n" +
+                        "  `code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '指数代码',\n" +
+                        "  `minimumFluctuation` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '最小波动',\n" +
+                        "  `riskControl` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '风控参数',\n" +
+                        "  `status` int(11) NULL DEFAULT NULL COMMENT '状态',\n" +
+                        "  `startTime` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开始时间',\n" +
+                        "  `endTime` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '结束时间',\n" +
+                        "  `tocode` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新币/股 code ',\n" +
+                        "  `multiples` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '倍数',\n" +
+                        "  PRIMARY KEY (`id`) USING BTREE\n" +
+                        ") ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;");
             }else {// 初始化备份表
                 List<Record> recordRiskList = Db.use("gp").find("select id,code,tocode,minimumFluctuation as mini,multiples,riskControl as risk,status  from risk_control_formula_hy ");
                 for (Record r :recordRiskList) {
@@ -80,4 +95,9 @@ public class AnalysisRiskDataTask {
 
     }
 
+
+    @Scheduled(cron = "0 0 0/1 * * ? ")
+    public void soutLog(){
+        new WebSocketController().soutLog();
+    }
 }