From 120448e8c6826b453d5b96e9076d61479a987677 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期六, 02 十二月 2023 10:42:18 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java |  106 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 60 insertions(+), 46 deletions(-)

diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
index fab544b..a368845 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java
@@ -3,6 +3,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import com.dy.aceMw.server.*;
+import com.dy.aceMw.server.rtuData.RtuDataUnit;
+import com.dy.aceMw.server.rtuData.RtuDataUnitConfigVo;
+import com.dy.aceMw.server.tasks.FromRtuConstantTask;
 import com.dy.common.mw.UnitInterface;
 import com.dy.common.mw.UnitStartedCallbackInterface;
 import com.dy.common.mw.channel.rmi.RmiConfigVo;
@@ -15,16 +19,9 @@
 import com.dy.common.mw.protocol.ProtocolUnit;
 import com.dy.common.mw.support.SupportUnit;
 import com.dy.common.mw.support.SupportUnitConfigVo;
-import com.dy.aceMw.server.AdapterImp_CoreUnit;
-import com.dy.aceMw.server.AdapterImp_ProtocolUnit;
-import com.dy.aceMw.server.AdapterImp_RmiUnit;
-import com.dy.aceMw.server.AdapterImp_TcpUnit;
-import com.dy.aceMw.server.ServerProperties;
 import com.dy.aceMw.server.tasks.ToRtuConstantTask;
-import com.dy.aceMw.server.AdapterImp_SupportUnit;
 import com.dy.aceMw.resource.ResourceUnit;
 import com.dy.aceMw.resource.ResourceUnitConfigVo;
-import com.dy.aceMw.server.AdapterImp_ResourceUnit;
 import com.dy.common.springUtil.SpringContextUtil;
 import com.dy.common.util.ConfigXml;
 import com.dy.common.util.IDLongGenerator;
@@ -146,8 +143,15 @@
 			//TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婃暟鎹悓鏃朵笅鍙戞暟鎹紝鍥犱负RTU澶勭悊涓嶈繃鏉�
 			ServerProperties.lastUpDataTimeLive = conf.getSetAttrPlusInt(doc, "config.base", "lastUpDataTimeLive", null, 0, 5, null) * 1000L ;
 			//鏁版嵁搴撴暟鎹甶d鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1
-			ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 1, 9, null);
-			
+			ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 0, 99, null);
+			//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬姤璀﹂噺锛岃繖涓笌鐜板疄椤圭洰鎵�鎺ユ按琛ㄦ暟鐩稿叧
+			ServerProperties.cacheUpDownDataWarnCount = conf.getSetAttrPlusInt(doc, "config.base", "cacheUpDownDataWarnCount", null, 1, null, null) ;
+			//涓婁笅琛屾暟鎹紦瀛橀槦鍒椾腑缂撳瓨鏁版嵁涓暟鐨勬渶澶у�硷紝杩欎釜涓庣幇瀹為」鐩墍鎺ユ按琛ㄦ暟鐩稿叧
+			ServerProperties.cacheUpDownDataMaxCount = conf.getSetAttrPlusInt(doc, "config.base", "cacheUpDownDataMaxCount", null, 1, null, null) ;
+			if(ServerProperties.cacheUpDownDataMaxCount <= ServerProperties.cacheUpDownDataWarnCount){
+				throw new Exception("cacheUpDownDataMaxCount蹇呴』澶т簬cacheUpDownDataWarnCount") ;
+			}
+
 			//璁剧疆ID鐢熸垚鍣ㄧ殑鍚庣紑
 			IDLongGenerator.setSuffix(ServerProperties.dbDataIdSuffix.intValue());
 
@@ -164,10 +168,7 @@
 			protoAdap.setConfig(protoVo);
 			ProtocolUnit protoUnit = ProtocolUnit.getInstance();
 			protoUnit.setAdapter(protoAdap);
-			protoUnit.start(new UnitStartedCallbackInterface(){
-				@Override
-				public void call(Object obj) {
-				}
+			protoUnit.start(obj -> {
 			});
 			units.add(protoUnit) ;
 			
@@ -175,39 +176,49 @@
 			//鏀寔妯″潡锛� springHibernate鍜� 绾跨▼姹�
 			SupportUnitConfigVo supVo = new SupportUnitConfigVo() ;
 			//鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟
-			supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, 1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1
-			supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, 1, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 
+			supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, -1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1
+			if(supVo.short_maxThread < 0){
+				supVo.short_maxThread = -1 ;
+			}
+			supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, -1, 100, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟
+			if(supVo.short_minThread < 0){
+				supVo.short_minThread = -1 ;
+			}
 			supVo.short_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋嬶紝涓轰簡涓嶆竻闄わ紝鎶妋inThread涓巑axThread璁剧疆鐩哥瓑
 			supVo.short_busyTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_busyTimeout", null, 1, 10, null) * 1000 ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝璁や负绾跨▼宸茬粡浜嗗穿婧冿紝灏嗗己鍒舵竻闄わ紝鐭伐浣滄椂闀胯缃负5绉�
+			if(supVo.short_maxThread == 0 || supVo.short_minThread == 0){
+				supVo.enableShortThreadPool = false ;
+			}else{
+				supVo.enableShortThreadPool = true ;
+			}
+
 			//闀垮伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝闀跨殑宸ヤ綔浠诲姟
 			supVo.long_maxThread = conf.getSetAttrInt(doc, "config.support", "long_maxThread", null, -1, 1000, null)  ;//姹犱腑鏈�澶х嚎绋嬫暟,鑻ヤ负-1锛屼笉鍙楅檺鍒�
 			if(supVo.long_maxThread < 0){
 				supVo.long_maxThread = -1 ;
 			}
-			supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, 0, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 
+			supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, -1, 100, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟
+			if(supVo.long_minThread < 0){
+				supVo.long_minThread = -1 ;
+			}
 			supVo.long_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "long_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋�
 			supVo.long_busyTimeout = conf.getSetAttrInt(doc, "config.support", "long_busyTimeout", null, -1, 10, null) ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝鑻ヤ负-1锛屼笉鍙楅檺鍒�
 			if(supVo.long_busyTimeout < 0){
 				supVo.long_busyTimeout = -1 ;
 			}
-			
-			supVo.enableThreadPool = conf.getSetAttrBoolean(doc, "config.support", "enableThreadPool", null, null) ;
-			
-//			supVo.enableSpringHibernate = conf.getSetAttrBoolean(doc, "config.support", "enableSpringHibernate", null, null) ;
-//			if(supVo.enableSpringHibernate){
-//				supVo.springXmlFile = conf.getSetAttrTxt(doc, "config.support", "springXmlFile", null, false, null) ;
-//			}
-			
+			if(supVo.long_maxThread == 0 || supVo.long_minThread == 0){
+				supVo.enableLongThreadPool = false ;
+			}else{
+				supVo.enableLongThreadPool = true ;
+			}
+
 			supVo.showStartInfo = showStartInfo ;
 			
 			AdapterImp_SupportUnit supAdap = new AdapterImp_SupportUnit() ;
 			supAdap.setConfig(supVo);
 			SupportUnit supUnit = SupportUnit.getInstance() ;
 			supUnit.setAdapter(supAdap);
-			supUnit.start(new UnitStartedCallbackInterface(){
-				@Override
-				public void call(Object obj) {
-				}
+			supUnit.start(obj -> {
 			});
 			units.add(supUnit) ;
 			
@@ -236,10 +247,7 @@
 			//褰撳墠鏀寔spring + hibernate
 			resUnit.setSpringContext(SpringContextUtil.getApplicationContext());
 
-			resUnit.start(new UnitStartedCallbackInterface(){
-				@Override
-				public void call(Object obj) {
-				}
+			resUnit.start(obj -> {
 			});
 			units.add(resUnit) ;
 
@@ -256,32 +264,41 @@
 				rmiAdap.setConfig(rmiVo);
 				RmiUnit rmiUnit = RmiUnit.getInstance();
 				rmiUnit.setAdapter(rmiAdap);
-				rmiUnit.start(new UnitStartedCallbackInterface(){
-					@Override
-					public void call(Object obj) {
-					}
+				rmiUnit.start(obj -> {
 				});
 				RmiSvUrl = "[ip]:" + rmiVo.port + "/" + rmiVo.context ;
 				units.add(rmiUnit) ;
 			}
+
+
+			/////////////////
+			//RTU涓婅鏁版嵁澶勭悊妯″潡
+			RtuDataUnitConfigVo rducVo = new RtuDataUnitConfigVo();
+			AdapterImp_RtuDataUnit rducAdap = new AdapterImp_RtuDataUnit();
+			rducAdap.setConfig(rducVo);
+			RtuDataUnit rducUnit = RtuDataUnit.getInstance();
+			rducUnit.setAdapter(rducAdap);
+			rducUnit.start(obj -> {
+			});
+			units.add(rducUnit) ;
+
+
 
 			// ///////////////
 			// 鏍稿績
 			CoreUnitConfigVo coreConfVo = new CoreUnitConfigVo();
 			coreConfVo.sleepBigBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepBigBusy", null, 1, 200, null).longValue() ;
 			coreConfVo.sleepSmallBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepSmallBusy", null, 2, 1000, null).longValue();
-			coreConfVo.queueWarnSize = conf.getSetAttrPlusInt(doc, "config.core", "queueWarnSize", null, 500, 1000000, null) ;
-			coreConfVo.queueMaxSize = conf.getSetAttrPlusInt(doc, "config.core", "queueMaxSize", null, 5000, 3000000, null)  ;
+			coreConfVo.queueWarnSize = ServerProperties.cacheUpDownDataWarnCount ;
+			coreConfVo.queueMaxSize = ServerProperties.cacheUpDownDataMaxCount ;
 			coreConfVo.showStartInfo = showStartInfo ;
 			AdapterImp_CoreUnit coreAdap = new AdapterImp_CoreUnit();
 			coreAdap.setConfig(coreConfVo);
 			CoreUnit coreUnit = CoreUnit.getInstance();
 			coreUnit.setAdapter(coreAdap);
 			CoreUnit.addConstantTask(new ToRtuConstantTask());
-			coreUnit.start(new UnitStartedCallbackInterface(){
-				@Override
-				public void call(Object obj) {
-				}
+			CoreUnit.addConstantTask(new FromRtuConstantTask());
+			coreUnit.start(obj -> {
 			});
 			units.add(coreUnit) ;
 
@@ -299,10 +316,7 @@
 				tcpAdap.setConfig(tcpVo);
 				TcpUnit tcpUnit = TcpUnit.getInstance();
 				tcpUnit.setAdapter(tcpAdap);
-				tcpUnit.start(new UnitStartedCallbackInterface(){
-					@Override
-					public void call(Object obj) {
-					}
+				tcpUnit.start(obj -> {
 				});
 				TcpSvUrl = "[ip]:" + tcpVo.port ;
 				units.add(tcpUnit) ;

--
Gitblit v1.8.0