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