From bb921522b934f30aac37cc5881a15d5142573d7c Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期二, 28 十一月 2023 08:50:01 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java |  110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 110 insertions(+), 0 deletions(-)

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
new file mode 100644
index 0000000..1189f3b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/TcpClUnit.java
@@ -0,0 +1,110 @@
+package com.dy.testClient.tcpClient;
+
+import com.dy.common.mw.UnitAdapterInterface;
+import com.dy.common.mw.UnitInterface;
+import com.dy.common.mw.UnitStartedCallbackInterface;
+import com.dy.common.threadPool.ThreadPool;
+import com.dy.common.threadPool.TreadPoolFactory;
+import com.dy.testClient.ServerProperties;
+import com.dy.testClient.rmiClient.RmiClUnit;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class TcpClUnit  implements UnitInterface {
+
+    private static final Logger log = LogManager.getLogger(TcpClUnit.class) ;
+
+    private static TcpClUnit instance = new TcpClUnit() ;
+
+    public static TcpClUnitAdapter adapter ;
+    public static TcpClUnitConfigVo confVo ;
+
+    private static ThreadPool.Pool pool ;
+
+    private static Integer totalRunedClientCount = 0;
+    private static Integer totalOverClientCount = 0;
+
+    private static Long startTime = 0L ;
+
+    private TcpClUnit(){} ;
+
+    public static TcpClUnit getInstance(){
+        return instance ;
+    }
+
+    @Override
+    public void setAdapter(UnitAdapterInterface adapter) throws Exception {
+        if(adapter == null){
+            throw new Exception("Tcp Client妯″潡閫傞厤鍣ㄥ璞′笉鑳戒负绌猴紒") ;
+        }
+        TcpClUnit.adapter = (TcpClUnitAdapter)adapter ;
+        TcpClUnit.confVo = TcpClUnit.adapter.getConfig() ;
+        if(TcpClUnit.confVo == null){
+            throw new Exception("Tcp Client妯″潡閰嶇疆瀵硅薄涓嶈兘涓虹┖锛�") ;
+        }
+    }
+
+    @Override
+    public void start(UnitStartedCallbackInterface callback) throws Exception {
+        pool = TreadPoolFactory.getThreadPoolLong() ;
+        System.out.println("Tcp Client妯″潡鎴愬姛鍚姩");
+        this.doStart();
+        callback.call(null) ;
+    }
+
+    @Override
+    public void stop(UnitStartedCallbackInterface callback) throws Exception {
+        callback.call(null);
+    }
+
+    private void doStart(){
+        new Thread(new Runnable(){
+            @Override
+            public void run() {
+                try {
+                    while(true){
+                        if(!ServerProperties.startWork){
+                            Thread.sleep(100L);
+                        }else{
+                            startTime = System.currentTimeMillis() ;
+                            for(Long addr = ServerProperties.rtuAddrStart; addr <= ServerProperties.rtuAddrEnd; addr++){
+                                totalRunedClientCount++ ;
+                                startClient(addr) ;
+                            }
+                            while(true){
+                                if(totalOverClientCount.longValue() >= totalRunedClientCount.longValue()){
+                                    Long seconds = (System.currentTimeMillis() - startTime)/1000 ;
+                                    RmiClUnit.getInstance().reportHadReportOver(seconds) ;
+                                    System.out.println("鍏辩敤鏃�" + seconds + "绉�");
+                                    break ;
+                                }else{
+                                    Thread.sleep(100L);
+                                }
+                            }
+                            break;
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).start();
+    }
+
+    private void startClient(Long rtuAddr){
+        try {
+            pool.putJob(new MyThreadJob("" + rtuAddr));
+        } catch (Exception e) {
+            log.error("TcpClUnit.startClient() ", e);
+        }
+    }
+
+
+    public static synchronized void clientOver(){
+        totalOverClientCount++;
+        if(totalOverClientCount % 100 == 0){
+            RmiClUnit.getInstance().reportHadReportCount(totalOverClientCount);
+            System.out.println("宸茬粡鍙戦��" + totalOverClientCount + "鏉℃暟鎹�");
+        }
+    }
+}

--
Gitblit v1.8.0