From ebf01d1fff86f44c3b56151b5fefe6b92b30eab8 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 01 四月 2024 18:24:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |   14 ++++++++++++--
 src/main/java/com/zy/core/ServerBootstrap.java         |   16 ++++++++++------
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index bf699d1..1749382 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -35,6 +35,8 @@
     @Autowired
     private MainProcess mainProcess;
 
+    int CRN_COUNT = 0;
+
     public static final Map<CrnThread, Thread> map = new ConcurrentHashMap<>();
 
     /**
@@ -132,13 +134,15 @@
 
         @Scheduled(cron = "0/3 * * * * ? ")
         public void kill() {
-            int i = 0;
             for (Map.Entry<CrnThread, Thread> entry : map.entrySet()) {
-                i++;
-                MelsecCrnThread key = (MelsecCrnThread) entry.getKey();
-                System.out.println("绗�"+i+"涓爢鍨涙満绾跨▼閲嶅惎绾跨▼鏉′欢锛�"+(System.currentTimeMillis() - key.getSign()));
-                if (System.currentTimeMillis() - key.getSign() > 120000) {
-                    System.out.println("绗�"+i+"涓爢鍨涙満绾跨▼琚噸鍚�");
+                CRN_COUNT++;
+                SiemensCrnThread key = (SiemensCrnThread) entry.getKey();
+//                System.out.println("绗�"+i+"涓爢鍨涙満绾跨▼閲嶅惎绾跨▼鏉′欢锛�"+(System.currentTimeMillis() - key.getSign()));
+                if (CRN_COUNT>10000){
+                    continue;
+                }
+                if (System.currentTimeMillis() - key.getSign() > 120000 && System.currentTimeMillis() - key.getSign()<1200000) {
+                    System.out.println("绗�"+CRN_COUNT+"涓爢鍨涙満绾跨▼琚噸鍚�");
 
                     // 璇锋眰绾跨▼瀹夊叏鍋滄
                     key.requestStop();
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ac81663..5ecdf33 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -40,6 +40,11 @@
     private CrnProtocol crnProtocol;
     private boolean resetFlag = false;
 
+    public Long sign = System.currentTimeMillis();
+
+    public boolean isRunning = true;
+
+
     /**
      * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
      */
@@ -53,7 +58,7 @@
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         this.connect();
-        while (true) {
+        while (isRunning) {
             try {
                 int step = 1;
                 Task task = MessageQueue.poll(SlaveType.Crn, slave.getId());
@@ -94,7 +99,7 @@
             } catch (Exception e) {
 //                e.printStackTrace();
             }
-
+            sign = System.currentTimeMillis();
         }
     }
 
@@ -414,4 +419,9 @@
 
     }
 
+    // 鎻愪緵涓�涓柟娉曟潵鍋滄绾跨▼
+    public void requestStop() {
+        isRunning = false;
+    }
+
 }

--
Gitblit v1.9.1