From 2f33c62e6e70f6bc38904b9c30a4baf768f4bc67 Mon Sep 17 00:00:00 2001 From: wangshilong Date: Thu, 28 Nov 2024 23:36:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=88=86=E7=89=87=E9=98=9F?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iot/modbus_rtcp/netty/SyncPriorityChannel.java | 4 +++- src/main/java/com/iot/modbus_rtcp/utils/HexUtil.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iot/modbus_rtcp/netty/SyncPriorityChannel.java b/src/main/java/com/iot/modbus_rtcp/netty/SyncPriorityChannel.java index 40e4877..5f47cee 100644 --- a/src/main/java/com/iot/modbus_rtcp/netty/SyncPriorityChannel.java +++ b/src/main/java/com/iot/modbus_rtcp/netty/SyncPriorityChannel.java @@ -2,6 +2,7 @@ package com.iot.modbus_rtcp.netty; import com.iot.modbus_rtcp.dto.CommandTypeComparable; import com.iot.modbus_rtcp.dto.ModbusCommandDto; +import com.iot.modbus_rtcp.utils.HexUtil; import io.netty.channel.ChannelPromise; import io.netty.channel.socket.SocketChannel; import lombok.Getter; @@ -140,6 +141,7 @@ public class SyncPriorityChannel implements Runnable { } public void setCollectQueue() { - this.collectQueue = "/modbus/device/" + this.identifier + "/collect"; +// this.collectQueue = "/modbus/device/" + this.identifier + "/collect"; + this.collectQueue = "/modbus/collect/" + HexUtil.hashPartition(this.identifier, 10); } } diff --git a/src/main/java/com/iot/modbus_rtcp/utils/HexUtil.java b/src/main/java/com/iot/modbus_rtcp/utils/HexUtil.java index c7bb3a3..f3359ca 100644 --- a/src/main/java/com/iot/modbus_rtcp/utils/HexUtil.java +++ b/src/main/java/com/iot/modbus_rtcp/utils/HexUtil.java @@ -22,6 +22,10 @@ public class HexUtil { return sb.toString().trim().toUpperCase(); } + public static int hashPartition(String key, int partition) { + return key.hashCode() % partition; + } + public static void main(String[] args) { System.out.println(hexStringToBytes("0D")); System.out.println(new byte[]{(byte) Integer.parseInt("0D", 16)});