From f0b6d018c5ae6e0a303725effa8939c93b510544 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 05 八月 2020 11:22:50 +0800 Subject: [PATCH] # --- /dev/null | 52 ----------------- src/main/java/com/zy/core/enums/SlaveType.java | 20 ++++++ src/main/java/com/zy/core/ServerBootstrap.java | 5 - src/main/java/com/zy/core/cache/SlaveConnection.java | 63 +++++++++++++++++++++ 4 files changed, 85 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java index 60b9ec3..0d298b3 100644 --- a/src/main/java/com/zy/core/ServerBootstrap.java +++ b/src/main/java/com/zy/core/ServerBootstrap.java @@ -1,8 +1,7 @@ package com.zy.core; -import com.alibaba.fastjson.JSON; import com.core.common.Cools; -import com.zy.core.cache.CrnConnection; +import com.zy.core.cache.SlaveConnection; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.CrnThread; import com.zy.core.thread.DevpThread; @@ -37,7 +36,7 @@ for (Slave crn : slaveProperties.getCrn()) { CrnThread crnThread = new CrnThread(crn); new Thread(crnThread).start(); - CrnConnection.put(ThreadHandler.CRN_PREFIX + crn.getId(), crnThread); + SlaveConnection.put(ThreadHandler.CRN_PREFIX + crn.getId(), crnThread); } } diff --git a/src/main/java/com/zy/core/cache/CrnConnection.java b/src/main/java/com/zy/core/cache/CrnConnection.java deleted file mode 100644 index 1123216..0000000 --- a/src/main/java/com/zy/core/cache/CrnConnection.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.zy.core.cache; - -import com.zy.core.ThreadHandler; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * Created by vincent on 2020/8/4 - */ -public class CrnConnection { - - private static Map<String, ThreadHandler> conContain = new ConcurrentHashMap<>(); - - public static void put(String key, ThreadHandler threadHandler) { - remove(key); - conContain.put(key, threadHandler); - } - - public static ThreadHandler get(String key) { - return conContain.get(key); - } - - public static void remove(String key) { - ThreadHandler threadHandler = get(key); - if (null == threadHandler) { - return; - } - conContain.remove(key); - threadHandler.close(); - } - - public static String remove(ThreadHandler threadHandler) { - if (null == threadHandler) { - return null; - } - String key = null; - for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()){ - if (entry.getValue() == threadHandler) { - key = entry.getKey(); - break; - } - } - if (null != key) { - remove(key); - return key; - } else { - return null; - } - } - -} diff --git a/src/main/java/com/zy/core/cache/SlaveConnection.java b/src/main/java/com/zy/core/cache/SlaveConnection.java new file mode 100644 index 0000000..666d86a --- /dev/null +++ b/src/main/java/com/zy/core/cache/SlaveConnection.java @@ -0,0 +1,63 @@ +package com.zy.core.cache; + +import com.zy.core.ThreadHandler; +import com.zy.core.enums.SlaveType; +import io.swagger.models.auth.In; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * Created by vincent on 2020/8/4 + */ +public class SlaveConnection { + + private static final String _LINK = "_"; + + private static Map<String, ThreadHandler> conContain = new ConcurrentHashMap<>(); + + public static void put(SlaveType type, Integer id, ThreadHandler threadHandler) { + String key = toKey(type, id); + remove(type, id); + conContain.put(key, threadHandler); + } + + public static ThreadHandler get(SlaveType type, Integer key) { + return conContain.get(toKey(type, key)); + } + + public static void remove(SlaveType type, Integer id) { + ThreadHandler threadHandler = get(type, id); + if (null == threadHandler) { + return; + } + conContain.remove(toKey(type, id)); + threadHandler.close(); + } + + public static Integer remove(ThreadHandler threadHandler) { + if (null == threadHandler) { + return null; + } + String key = null; + for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()){ + if (entry.getValue() == threadHandler) { + key = entry.getKey(); + break; + } + } + if (null != key) { + SlaveType type = SlaveType.findInstance(key); + Integer id = Integer.parseInt(key.split(_LINK)[1]); + remove(type, id); + return id; + } else { + return null; + } + } + + private static String toKey(SlaveType type, Integer id){ + return type.toString()+_LINK+id; + } + +} diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java new file mode 100644 index 0000000..7812caa --- /dev/null +++ b/src/main/java/com/zy/core/enums/SlaveType.java @@ -0,0 +1,20 @@ +package com.zy.core.enums; + +public enum SlaveType { + + Crn, + Devp, + Barcode, + Led, + Scale, + ; + + public static SlaveType findInstance(String s){ + for (SlaveType type : SlaveType.values()) { + if (type.toString().equals(s)) { + return type; + } + } + return null; + } +} -- Gitblit v1.9.1