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