From 0b7dae5aadc7e4bcd61074fdf8cdd786a23f8f18 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 02 十二月 2022 10:42:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/cache/SlaveConnection.java |   63 +++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 0 deletions(-)

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..0b57169
--- /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 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 final 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 id) {
+        return conContain.get(toKey(type, id));
+    }
+
+    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;
+    }
+
+}

--
Gitblit v1.9.1