From 24f53bb77f9ac80feb2e62e8ee670be4aa5f3c6e Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 13 二月 2025 11:56:42 +0800 Subject: [PATCH] 1、远程模块remote模块实现: (1、系统启动时向通信中间件注册消息接收者; (2、消息接收者ctr实现(测试阶段); 2、在配置文件增加配置Springboot RestTemplate网络请求超时时长; 3、其他一些测试与优化。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java | 121 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 121 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java new file mode 100644 index 0000000..81bc5b7 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCache.java @@ -0,0 +1,121 @@ +package com.dy.common.mw.protocol; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ProtocolCache { + + //鏈郴缁熶腑锛孌river鍦ㄥ崟绾跨▼涓繍琛岋紝鎵�浠ュ彧鐢ㄤ竴涓疄渚� + private static final HashMap<String, Driver> drivers = new HashMap<>() ; + //娉ㄨВ涓庡鐞嗙被鐨勬槧灏� + private static final HashMap<String, AnnotationDriverVo> driverMap = new HashMap<>() ; + private static final HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = new HashMap<>() ; + private static final HashMap<String, AnnotationOnLineVo> onLineMap = new HashMap<>() ; + + + /** + * 鍦ㄥ崟绾跨▼鐜涓繍琛� + * 閫氳繃鍗忚椹卞姩鐨勭被鍚嶏紝寰楀埌绫诲崟渚� + * @param protocolName 鍗忚鍚嶇О + * @param protocolVersion 鍗忚鐗堟湰鍙� + * @return 椹卞姩 + * @throws Exception 寮傚父 + */ + public static Driver getDriver(String protocolName, short protocolVersion) throws Exception{ + Driver dri = drivers.get(protocolName + protocolVersion) ; + if(dri == null){ + AnnotationDriverVo vo = driverMap.get(protocolName + protocolVersion) ; + if(vo != null && vo.clazz != null){ + dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance(); + drivers.put(protocolName + protocolVersion, dri) ; + } + } + return dri ; + } + /** + * 鍦ㄥ崟绾跨▼鐜涓繍琛� + * 閫氳繃鍗忚椹卞姩鐨勭被鍚嶏紝寰楀埌绫诲崟渚� + * @param protocolNameVersion 鍗忚鍚嶇О鍜岀増鏈彿 + * @return 椹卞姩 + * @throws Exception 寮傚父 + */ + public static Driver getDriver(String protocolNameVersion) throws Exception{ + Driver dri = drivers.get(protocolNameVersion) ; + if(dri == null){ + AnnotationDriverVo vo = driverMap.get(protocolNameVersion) ; + if(vo != null && vo.clazz != null){ + dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance(); + drivers.put(protocolNameVersion, dri) ; + } + } + return dri ; + } + + /** + * 寰楀埌椹卞姩鐨勬暟閲忥紝鍗充腑闂翠欢鏀寔鐨勫崗璁暟閲� + * @return 椹卞姩鎬绘暟 + */ + public static int driverCount(){ + if(drivers.size() == 0){ + return 0 ; + }else{ + return drivers.size() ; + } + } + + /** + * 寰楀埌绗竴涓┍鍔� + * @return 椹卞姩 + */ + public static Driver getFirstDriver(){ + Driver dri = null ; + if(drivers.size() > 0){ + Map.Entry<String, Driver> ent = drivers.entrySet().iterator().next() ; + dri = ent.getValue(); + } + return dri ; + } + + /** + * 寰楀埌鎵�鏈夊崗璁悕绉� + * @return 鍗忚鍚嶇О闆嗗悎 + */ + @SuppressWarnings("unused") + public static List<String> getProtocolList() { + return new ArrayList<>(driverMap.keySet()) ; + } + + protected static HashMap<String, AnnotationDriverVo> getDriverMap() { + return driverMap; + } + protected static HashMap<String, AnnotationPrefixedDataAvailableVo> getPrefixedDataAvailableMap() { + return prefixedDataAvailableMap; + } + protected static HashMap<String, AnnotationOnLineVo> getOnLineMap() { + return onLineMap; + } + + protected AnnotationDriverVo getAnnotationDriver(String protocolName, Short protocolVersion){ + return driverMap.get(protocolName + "" + protocolVersion) ; + } + + protected static AnnotationPrefixedDataAvailableVo getAnnotationPrefixedDataAvailable(String protocolName, Short protocolVersion){ + return prefixedDataAvailableMap.get(protocolName + "" + protocolVersion) ; + } + + protected static AnnotationOnLineVo getAnnotationOnLine(String protocolName, Short protocolVersion){ + return onLineMap.get(protocolName + "" + protocolVersion) ; + } + + /* + public static void main(String[] args){ + HashMap<String, Integer> mp = new HashMap<>() ; + mp.put("a1", 1) ; + mp.put("a2", 2) ; + List<String> list = new ArrayList<>(mp.keySet()) ; + System.out.println(list); + } + */ +} \ No newline at end of file -- Gitblit v1.8.0