From 3b668f811fce818ce69ac9bca4195976704dc719 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 18 十二月 2023 15:35:59 +0800 Subject: [PATCH] 1、优化ID生成器,方法同步锁改为静态变量同步锁; 2、RTU模拟器中增加TCP连接输出日志信息; 3、RTU模拟器中增加Rmi相关输出日志信息; --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java | 19 +++++++-- pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java | 2 + pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java | 45 +++++++++++----------- 3 files changed, 39 insertions(+), 27 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java index be3dc2a..9f6e86f 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/IDLongGenerator.java @@ -1,11 +1,15 @@ package com.dy.common.util; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.Calendar; +@Slf4j @Component public class IDLongGenerator { + + private static final Object synObj = new Object() ; private static final int yearLenght = 4 ;//4锛氬勾搴﹀彇鍥涗綅锛� 3锛氬勾搴﹀彇涓変綅锛� 2锛氬勾搴﹀彇涓や綅锛� 1锛氬勾搴﹀彇涓�浣嶏紝 0锛氬勾搴﹀彇0浣� @@ -24,11 +28,16 @@ } /** - * 23 10 28 09 14 40 00000 - * 闀垮害16鐨処D锛屽勾搴﹀彇涓や綅锛岄暱搴�18鐨処D锛屽勾搴﹀彇鍥涗綅锛�17浣嶆暟瀛楄秴鍑轰簡javascript鐨勮〃鏁拌寖鍥达紝javascript浼氳〃鏁颁笉姝g‘ + * 2023 10 28 09 14 40 00000 + * 闀垮害19鐨処D锛屽勾搴﹀彇涓や綅锛岄暱搴�18鐨処D锛屽勾搴﹀彇鍥涗綅锛�17浣嶆暟瀛楄秴鍑轰簡javascript鐨勮〃鏁拌寖鍥达紝javascript浼氳〃鏁颁笉姝g‘ */ - public synchronized Long generate(){ - return doGenerate() ; + public Long generate(){ + synchronized (synObj){ + //Long id = doGenerate() ; + //log.info("浜х敓ID = " + id); + //return id ; + return doGenerate() ; + } } /** * 璁剧疆鍚庣紑锛屼笉鍚屽瓙绯荤粺璁剧疆涓嶅悓鐨勫悗缂� @@ -96,7 +105,7 @@ /** * 鎵ц鐢熸垚 - * @return ID + * @return ID 20231218 104504 06900 */ private Long doGenerate(){ long id ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java index c8d961c..e383670 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/rmiClient/RmiClUnit.java @@ -73,6 +73,8 @@ } public RmiFrameWork getRmiFrameWork(){ + System.setProperty("java.rmi.server.hostname", confVo.svUrl) ; + System.out.println("Rmi寤虹珛杩炴帴璇锋眰鏈嶅姟绔細" + confVo.svUrl + ":" + confVo.svPort + "/" + confVo.svContext); RmiClient rmiCl = new RmiClient(confVo.svUrl, confVo.svPort, confVo.svContext) ; return rmiCl.getRmiInterface() ; } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java index 78a8b90..8db9ab8 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java @@ -83,10 +83,13 @@ log.info("鍏辨ā鎷熶簡" + totalRtuClientCount + "鍙癛TU"); Collection<MyThreadJob> collection = jobMap.values() ; + int connectedCount = 0 ; for(MyThreadJob job : collection){ connectServer(job) ; + connectedCount++ ; + log.info("褰撳墠寤虹珛涓庨�氫俊涓棿浠惰繛鎺ョ殑RTU鏁伴噺涓猴細" + connectedCount); } - log.info("鍚姩鎵�鏈塕TU杩炴帴閫氫俊涓棿浠�"); + log.info("鎵�鏈塕TU宸蹭笌閫氫俊涓棿浠跺缓绔嬭繛鎺�"); while (true){ int noConnectedCount = checkConnected() ; @@ -99,6 +102,7 @@ } startJob() ; + while(true){ if(totalOverClientCount.longValue() >= totalRtuClientCount.longValue()){ Long seconds = (System.currentTimeMillis() - startTime)/1000 ; @@ -176,30 +180,27 @@ } private void startJob(){ - new Thread(new Runnable(){ - @Override - public void run() { - try { - int notOverCount; - while(true){ - notOverCount = 0 ; - Collection<MyThreadJob> collection = jobMap.values() ; - for(MyThreadJob job : collection){ - if(!job.isOver){ - notOverCount++ ; - pool.putJob(job); - } - } - if(notOverCount > 0){ - log.info("褰撳墠杩樻湁" + notOverCount + "鍙癛TU鏈畬鎴愪换鍔�"); - Thread.sleep(ServerProperties.sendInterval * 1000); - }else{ - break ; + new Thread(() -> { + try { + int notOverCount; + while(true){ + notOverCount = 0 ; + Collection<MyThreadJob> collection = jobMap.values() ; + for(MyThreadJob job : collection){ + if(!job.isOver){ + notOverCount++ ; + pool.putJob(job); } } - } catch (Exception e) { - e.printStackTrace(); + if(notOverCount > 0){ + log.info("褰撳墠杩樻湁" + notOverCount + "鍙癛TU鏈畬鎴愪换鍔�"); + Thread.sleep(ServerProperties.sendInterval * 1000); + }else{ + break ; + } } + } catch (Exception e) { + e.printStackTrace(); } }).start(); } -- Gitblit v1.8.0