Преглед на файлове

宁夏给一区一集控智深转数

chenminghua преди 2 години
родител
ревизия
1686b08ff3

+ 7 - 15
gddlly/src/main/java/com/gyee/edge/gddlly/redis/RedisDataService.java

@@ -78,29 +78,22 @@ public class RedisDataService {
                 return false;
             }
 
-            List<String> vals = (List<String>)this.redisUtil.getmAll(keys);
+            List<Object> vals = redisUtil.hmgetAll(keys);
             if (vals == null || vals.isEmpty() || vals.size() != keys.size()) {
                 log.error("读取redis错误!publicaddr = " + addr);
                 return false;
             }
 
-            for (int i = 0; i < keys.size(); i++){
+            for (int i = 0; i < keys.size(); i++) {
                 Point point = points.get(i);
-                String val = vals.get(i);
-                if (point == null || !StringUtils.hasText(val))
-                    continue;
-
-                String[] vls = val.split(":");
-                if (vls.length != 2)
+                Map<String, String> mp = (Map<String, String>) vals.get(i);
+                if (mp == null || mp.size() == 0)
                     continue;
 
-                String ts = vls[0].trim();
-                String vs = vls[1].trim();
-
-                long time = Long.valueOf(ts.substring(ts.indexOf("\"") + 1, ts.length() - 1));
-                double value = Double.valueOf(vs.substring(1, vs.lastIndexOf("\"")));
+                long time = Long.valueOf(mp.get("timestamp")).longValue() * 1000;
+                double value = Double.valueOf(mp.get("value")).doubleValue();
 
-                if (point.getValue() != value ) {
+                if (point.getValue() != value) {
                     point.setConsumed(false);
                     point.setValue(value);
                     point.setLastUpdateTime(new Date(time));
@@ -108,7 +101,6 @@ public class RedisDataService {
 
                 if (point.getLastUpdateTime() == null)
                     point.setLastUpdateTime(new Date(time));
-
             }
         } catch (Exception e){
             log.error(e.getMessage());

+ 18 - 0
gddlly/src/main/java/com/gyee/edge/gddlly/utils/RedisUtil.java

@@ -1,6 +1,9 @@
 package com.gyee.edge.gddlly.utils;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataAccessException;
+import org.springframework.data.redis.connection.RedisConnection;
+import org.springframework.data.redis.core.RedisCallback;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
@@ -198,6 +201,21 @@ public class RedisUtil {
     }
 
     /**
+     * 批量读取 keys
+     * @param keys 键
+     * @return 对应的多个键值
+     */
+    public List<Object> hmgetAll(List<String> keys){
+        List<Object> redisResult = redisTemplate.executePipelined((RedisCallback<Map<String, String>>) connection -> {
+            for (String key : keys) {
+                connection.hGetAll(key.getBytes());
+            }
+            return null;
+        });
+        return redisResult;
+    }
+
+    /**
      * HashSet
      * @param key 键
      * @param map 对应多个键值

+ 24 - 12
gddlly/src/main/resources/application.yaml

@@ -4,24 +4,36 @@ spring:
   datasource:
     driver-class-name: org.sqlite.JDBC
     #    F:\\colud_ideaspace\\edge\\gateway\\src\\main\\resources\\myDb
-    url: jdbc:sqlite::resource:gddlly.db
+    #url: jdbc:sqlite::resource:gddlly.db
+    url: jdbc:sqlite::resource:gdnxzs.sqlite
     username:
     password:
 
 
+#  redis:
+#    database: 0
+#    cluster:
+#      nodes: 127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384,127.0.0.1:6385 #集群节点
+#    password: gdnxfd@123     #密码
+#    lettuce:
+#      pool:
+#        max-active: 40  #连接池最大连接数
+#        max-idle: 8     #连接池中最大空闲连接数
+#        max-wait: -1ms  #连接池最大等待阻塞时间
+#        min-idle: 10     #连接池中最小空闲数
+#    timeout: 10000      #访问超时时间
+
   redis:
     database: 0
-    cluster:
-      nodes: 127.0.0.1:6380,127.0.0.1:6381,127.0.0.1:6382,127.0.0.1:6383,127.0.0.1:6384,127.0.0.1:6385 #集群节点
-    password: gdnxfd@123     #密码
-    lettuce:
-      pool:
-        max-active: 40  #连接池最大连接数
-        max-idle: 8     #连接池中最大空闲连接数
-        max-wait: -1ms  #连接池最大等待阻塞时间
-        min-idle: 10     #连接池中最小空闲数
-    timeout: 10000      #访问超时时间
-
+    host: 192.168.1.84
+    password:
+    pool:
+      maxTotal: 20
+      maxIdle: 20
+      maxwait: 600000
+      minIdle: 10
+    port: 6379
+    timeout: 600000
 
 iec104:
   port: 2404

BIN
gddlly/src/main/resources/gdnxzs.sqlite