ソースを参照

修改opcda跨天读取数据断了

zhoupeng 1 年間 前
コミット
3a6f894ddb

+ 5 - 6
cqcy-ei/cqcy-ei-da/src/main/java/com/example/opc_da/task/OpcDaChangeTask.java

@@ -168,12 +168,14 @@ public class OpcDaChangeTask extends TimerTask {
         while (true) {
             //判断此时数据组是否被停止
             if (!getItemGroupRunState(id)) {
-                stopTaskInformation(id, listener, server, group, threadPool);
+                itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
+                redisUtil.del(ConstantStr.ITEM_GROUP + id);
+                stopTaskInformation(listener, server, group, threadPool);
                 break;
             }
             //判断数据组是否到达了,今天的结束时间
             if (System.currentTimeMillis() >= endTime) {
-                stopTaskInformation(id, listener, server, group, threadPool);
+                stopTaskInformation(listener, server, group, threadPool);
                 break;
             }
             try {
@@ -334,12 +336,11 @@ public class OpcDaChangeTask extends TimerTask {
     /**
      * 任务在执行相关的摧毁动作
      *
-     * @param id
      * @param listener
      * @param server
      * @param group
      */
-    public void stopTaskInformation(Integer id, ServerConnectionStateListener listener, Server server,
+    public void stopTaskInformation(ServerConnectionStateListener listener, Server server,
                                     Group group, ScheduledExecutorService threadPool) {
         //重连服务摧毁,必须在server之前,不然server摧毁时,会被监听器执行一次
         if (Blank.isNotEmpty(server)) {
@@ -352,9 +353,7 @@ public class OpcDaChangeTask extends TimerTask {
             }
             server.dispose();
         }
-        itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
         cronTaskRegister.removeCronTask(cronId);
-        redisUtil.del(ConstantStr.ITEM_GROUP + id);
         threadPool.shutdown();
         timer.cancel();
     }

+ 6 - 6
cqcy-ei/cqcy-ei-da/src/main/java/com/example/opc_da/task/OpcDaExceedTask.java

@@ -171,12 +171,14 @@ public class OpcDaExceedTask extends TimerTask {
         while (true) {
             //判断此时数据组是否被停止
             if (!getItemGroupRunState(id)) {
-                stopTaskInformation(id, listener, server, group, threadPool);
+                itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
+                redisUtil.del(ConstantStr.ITEM_GROUP + id);
+                stopTaskInformation(listener, server, group, threadPool);
                 break;
             }
             //判断数据组是否到达了,今天的结束时间
             if (System.currentTimeMillis() >= endTime) {
-                stopTaskInformation(id, listener, server, group, threadPool);
+                stopTaskInformation(listener, server, group, threadPool);
                 break;
             }
             try {
@@ -475,12 +477,11 @@ public class OpcDaExceedTask extends TimerTask {
     /**
      * 任务在执行相关的摧毁动作
      *
-     * @param id
      * @param listener
      * @param server
      * @param group
      */
-    public void stopTaskInformation(Integer id, ServerConnectionStateListener listener, Server server,
+    public void stopTaskInformation(ServerConnectionStateListener listener, Server server,
                                     Group group, ScheduledExecutorService threadPool) {
         //重连服务摧毁,必须在server之前,不然server摧毁时,会被监听器执行一次
         if (Blank.isNotEmpty(server)) {
@@ -493,9 +494,8 @@ public class OpcDaExceedTask extends TimerTask {
             }
             server.dispose();
         }
-        itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
+
         cronTaskRegister.removeCronTask(cronId);
-        redisUtil.del(ConstantStr.ITEM_GROUP + id);
         threadPool.shutdown();
         timer.cancel();
     }

+ 6 - 6
cqcy-ei/cqcy-ei-da/src/main/java/com/example/opc_da/task/OpcDaFrequencyTask.java

@@ -176,12 +176,14 @@ public class OpcDaFrequencyTask extends TimerTask {
         while (true) {
             //判断此时数据组是否被停止
             if (!getItemGroupRunState(id)) {
-                stopTaskInformation(id, listener, server, group, threadPool);
+                itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
+                redisUtil.del(ConstantStr.ITEM_GROUP + id);
+                stopTaskInformation(listener, server, group, threadPool);
                 break;
             }
             //判断数据组是否到达了,今天的结束时间
             if (System.currentTimeMillis() >= endTime) {
-                stopTaskInformation(id, listener, server, group, threadPool);
+                stopTaskInformation(listener, server, group, threadPool);
                 break;
             }
             try {
@@ -227,6 +229,7 @@ public class OpcDaFrequencyTask extends TimerTask {
 
     /**
      * 监听器回调函数
+     *
      * @param connected
      * @param threadPool
      * @param listener
@@ -368,12 +371,11 @@ public class OpcDaFrequencyTask extends TimerTask {
     /**
      * 任务在执行相关的摧毁动作
      *
-     * @param id
      * @param listener
      * @param server
      * @param group
      */
-    public void stopTaskInformation(Integer id, ServerConnectionStateListener listener, Server server,
+    public void stopTaskInformation(ServerConnectionStateListener listener, Server server,
                                     Group group, ScheduledExecutorService threadPool) {
         //重连服务摧毁,必须在server之前,不然server摧毁时,会被监听器执行一次
         if (Blank.isNotEmpty(server)) {
@@ -386,9 +388,7 @@ public class OpcDaFrequencyTask extends TimerTask {
             }
             server.dispose();
         }
-        itemGroupDao.stopItemGroupById(itemGroup.getId(), ConstantStr.STOP_IT);
         cronTaskRegister.removeCronTask(cronId);
-        redisUtil.del(ConstantStr.ITEM_GROUP + id);
         threadPool.shutdown();
         timer.cancel();
     }