|
@@ -18,10 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.net.SocketAddress;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -142,10 +139,24 @@ public class NettyAlarmMsgBaseHandler extends ChannelInboundHandlerAdapter {
|
|
|
((JSONObject) alarmConfig).getString("projectId")
|
|
|
)
|
|
|
);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Map<Channel, List<Object>> channelGroups = new HashMap<>();
|
|
|
+
|
|
|
groups.forEach((tmpProjectId, alarmConfigList) -> {
|
|
|
- sendMessage(tmpProjectId, new NettyAlarmMessage(9, alarmConfigList).toString());
|
|
|
+ Channel channel = getChannel(projectId);
|
|
|
+ if (channelGroups.containsKey(channel)) {
|
|
|
+
|
|
|
+ channelGroups.get(channel).addAll(alarmConfigList);
|
|
|
+ } else {
|
|
|
+ channelGroups.put(channel, alarmConfigList);
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
+ channelGroups.forEach((channel, alarmConfigList) -> {
|
|
|
+ sendMessage(channel, new NettyAlarmMessage(9, alarmConfigList).toString());
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
|
|
@@ -351,11 +362,26 @@ public class NettyAlarmMsgBaseHandler extends ChannelInboundHandlerAdapter {
|
|
|
*/
|
|
|
public void sendMessage(String projectId, String msg) {
|
|
|
Channel channel = getChannel(projectId);
|
|
|
+ log.info("projectId: {}", projectId);
|
|
|
+ sendMessage(channel, msg);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * @description: 发送消息
|
|
|
+ * @param: channel 通道
|
|
|
+ * @param: msg 消息
|
|
|
+ * @return: void
|
|
|
+ * @exception:
|
|
|
+ * @author: lixing
|
|
|
+ * @company: Persagy Technology Co.,Ltd
|
|
|
+ * @since: 2020/12/17 12:55 下午
|
|
|
+ * @version: V1.0
|
|
|
+ */
|
|
|
+ public void sendMessage(Channel channel, String msg) {
|
|
|
if (channel != null) {
|
|
|
channel.writeAndFlush(msg);
|
|
|
} else {
|
|
|
- log.info("...projectId[{}]未建立连接,无法发送!", projectId);
|
|
|
+ log.error("消息通道未建立,无法发送消息!");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|