From 429f9d85eddbb07081c149d7156964337ba688aa Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 22 十一月 2023 15:28:40 +0800
Subject: [PATCH] 通信中间件开发,阶段性提交

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java |   57 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
index dc93cb9..d042ef3 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java
@@ -5,7 +5,7 @@
 
 import com.dy.common.queue.Node;
 import com.dy.common.mw.core.CoreTask;
-import com.dy.aceMw.server.forTcp.TcpDownCommandCach;
+import com.dy.aceMw.server.forTcp.TcpDownCommandCache;
 import com.dy.aceMw.server.forTcp.TcpDownCommandObj;
 import com.dy.aceMw.server.forTcp.TcpSessionCach;
 
@@ -13,8 +13,7 @@
  * 澶勭悊RTU涓嬭鍛戒护鏁版嵁鐨勬亽涔呬换鍔�
  */
 public class ToRtuConstantTask extends CoreTask {
-	
-	private static Logger log = LogManager.getLogger(ToRtuConstantTask.class.getName());
+	private static final Logger log = LogManager.getLogger(ToRtuConstantTask.class.getName());
 
 	/**
 	 * 鍦ㄥ崟绾跨▼鐜涓繍琛�
@@ -41,26 +40,22 @@
 	 * 澶勭悊涓嬭鍛戒护
 	 */
 	public Integer dealDownCommand(Long now) {
-		try{
-			Node first = TcpDownCommandCach.getFirstQueueNode() ;
-			if(first != null){
-				Integer count = TcpDownCommandCach.size() ;
-				Node last = TcpDownCommandCach.getLastQueueNode() ;
-				this.doDealDownCommand(now, first, last);
-				return count ;
-			}
-		}catch(Exception e){
-			log.error(e);
+		Node first = TcpDownCommandCache.getFirstQueueNode() ;
+		if(first != null){
+			Integer count = TcpDownCommandCache.size() ;
+			Node last = TcpDownCommandCache.getLastQueueNode() ;
+			this.doDealDownCommand(now, first, last);
+			return count ;
 		}
 		return null ;
 	}
 	/**
 	 * 澶勭悊缂撳瓨鐨勪笅琛屽懡浠よ妭鐐�
-	 * @param now
-	 * @param first
-	 * @param last
+	 * @param now 褰撳墠鏃跺埢
+	 * @param first 绗竴涓妭鐐�
+	 * @param last 鏈�鍚庝竴涓妭鐐�
 	 */
-	private void doDealDownCommand(Long now, Node first, Node last){
+	private void doDealDownCommand1(Long now, Node first, Node last){
 		if(first != null){
 			//鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸first浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秄irst.next涓虹┖锛屾墍浠ユ彁鍓嶆妸first.next鍙栧嚭鏉�
 			Node next = first.next ;
@@ -75,17 +70,39 @@
 			}
 		}
 	}
+
+	/**
+	 * 澶勭悊缂撳瓨鐨勪笅琛屽懡浠よ妭鐐�
+	 * @param now 褰撳墠鏃跺埢
+	 * @param first 绗竴涓妭鐐�
+	 * @param last 鏈�鍚庝竴涓妭鐐�
+	 */
+	private void doDealDownCommand(Long now, Node first, Node last){
+		if(last != null){
+			//鍦╠ealNode鏂规硶涓紝鍙兘瑕佹妸last浠庨槦鍒椾腑绉婚櫎锛岃繖鏃秎ast.pre涓虹┖锛屾墍浠ユ彁鍓嶆妸last.pre鍙栧嚭鏉�
+			Node pre = last.pre ;
+			dealNode(now, last) ;
+			if(first != null && first != last){
+				doDealDownCommand(now, first, pre) ;
+			}else if(first != null && first == last){
+				//鍋滄
+			}else if(first == null){
+				//杩欑鎯呭喌涓嶄細瀛樺湪
+				doDealDownCommand(now, null, pre) ;
+			}
+		}
+	}
 	
 	/**
 	 * 澶勭悊涓�涓妭鐐�
-	 * @param now
-	 * @param node
+	 * @param now 鐜板湪鏃跺埢
+	 * @param node 鑺傜偣
 	 */
 	private void dealNode(Long now, Node node){
 		TcpDownCommandObj obj = (TcpDownCommandObj)node.obj ;
 		boolean removeNode = obj.dealSelf(now) ;
 		if(removeNode){
-			TcpDownCommandCach.removeNode(node);
+			TcpDownCommandCache.removeNode(node);
 		}
 	}
 

--
Gitblit v1.8.0