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