From eb3e5b10196b173ca27452436d48ea9b1d1b1206 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 17 二月 2023 13:35:15 +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