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