src/main/java/com/zy/core/ServerBootstrap.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/cache/CrnConnection.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/cache/SlaveConnection.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/enums/SlaveType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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); } } src/main/java/com/zy/core/cache/CrnConnection.java
File was deleted src/main/java/com/zy/core/cache/SlaveConnection.java
New file @@ -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; } } src/main/java/com/zy/core/enums/SlaveType.java
New file @@ -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; } }