From 37ad41fcac6e1e465db4f9bca397f1e26baa66ab Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 19 十一月 2024 10:28:01 +0800
Subject: [PATCH] 修改设备升级任务实现算法,使其运行更安全

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java |   23 ++++++++++++++++++-----
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java    |   12 +++++++-----
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
index 540e811..acfc12e 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeManager.java
@@ -53,11 +53,24 @@
         if(this.task != null && !this.task.taskIsOver){
             throw new Exception("褰撳墠瀛樺湪鍗囩骇浠诲姟锛岃绛夊緟褰撳墠浠诲姟鎵ц瀹屾垨寮哄埗缁撴潫褰撳墠浠诲姟");
         }else {
-            this.task.forceOver();
-            this.task = new UpgradeTask();
-            this.task.initOption(this.failTryTimes, this.ugMaxRtuSameTime);
-            this.task.setTask(vo);
-            this.start(this);
+            Exception ex = null ;
+            try{
+                if(this.task != null){
+                    this.task.forceOver();
+                }
+                this.task = new UpgradeTask();
+                this.task.initOption(this.failTryTimes, this.ugMaxRtuSameTime);
+                this.task.setTask(vo);
+            }catch (Exception e){
+                ex = e ;
+            }finally {
+                if(ex != null){
+                    this.task = null ;
+                    throw ex ;
+                }else{
+                    this.start(this);
+                }
+            }
         }
     }
 
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
index 5ac27f0..77e5baf 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/upgrade/UpgradeTask.java
@@ -175,11 +175,13 @@
      * 寮哄埗缁撴潫鍗囩骇浠诲姟
      */
     public void forceOver(){
-        this.taskIsOver = true ;//寮哄埗璁剧疆浠诲姟瀹屾垚
-        this.taskOverType = TaskOverType_Force ;//浠诲姟瀹屾垚鏂瑰紡锛堣嚜鐒讹紝寮哄埗锛�
-        this.taskOverDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;//浠诲姟瀹屾垚鏃堕棿(yyyy-mm-dd HH:MM:SS)
-        //this.taskVo.rtuAddrList.clear();
-        //this.upgradeState.clear();
+        if(!this.taskIsOver){
+            this.taskIsOver = true ;//寮哄埗璁剧疆浠诲姟瀹屾垚
+            this.taskOverType = TaskOverType_Force ;//浠诲姟瀹屾垚鏂瑰紡锛堣嚜鐒讹紝寮哄埗锛�
+            this.taskOverDt = DateTime.yyyy_MM_dd_HH_mm_ss() ;//浠诲姟瀹屾垚鏃堕棿(yyyy-mm-dd HH:MM:SS)
+            //this.taskVo.rtuAddrList.clear();
+            //this.upgradeState.clear();
+        }
     }
 
     /**

--
Gitblit v1.8.0