From d6ff18e0ff89d36e80195da43ca40bf3a8f42b2c Mon Sep 17 00:00:00 2001 From: Administrator <pjb> Date: 星期日, 15 六月 2025 09:38:14 +0800 Subject: [PATCH] wms分配库位异常 --- src/main/java/com/zy/core/cache/SlaveConnection.java | 38 +++++++++++++++++++++++--------------- 1 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/core/cache/SlaveConnection.java b/src/main/java/com/zy/core/cache/SlaveConnection.java index a3dbdea..4233714 100644 --- a/src/main/java/com/zy/core/cache/SlaveConnection.java +++ b/src/main/java/com/zy/core/cache/SlaveConnection.java @@ -1,55 +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 { - public static final String CRN_PREFIX = "CRN_"; + private static final String _LINK = "_"; - public static final String DEVP_PREFIX = "DEVP_"; + private static final Map<String, ThreadHandler> conContain = new ConcurrentHashMap<>(); - private static Map<String, ThreadHandler> conContain = new ConcurrentHashMap<>(); - - public static void put(String key, ThreadHandler threadHandler) { - + 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(String key) { - return conContain.get(key); + public static ThreadHandler get(SlaveType type, Integer id) { + return conContain.get(toKey(type, id)); } - public static void remove(String key) { - ThreadHandler threadHandler = get(key); + public static void remove(SlaveType type, Integer id) { + ThreadHandler threadHandler = get(type, id); if (null == threadHandler) { return; } - conContain.remove(key); + conContain.remove(toKey(type, id)); threadHandler.close(); } - public static String remove(ThreadHandler threadHandler) { + public static Integer remove(ThreadHandler threadHandler) { if (null == threadHandler) { return null; } String key = null; - for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()){ + for (Map.Entry<String, ThreadHandler> entry : conContain.entrySet()) { if (entry.getValue() == threadHandler) { key = entry.getKey(); break; } } if (null != key) { - remove(key); - return 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