diff --git a/src/org/redkale/mq/MessageProducers.java b/src/org/redkale/mq/MessageProducers.java index 15fddc44a..41d95e557 100644 --- a/src/org/redkale/mq/MessageProducers.java +++ b/src/org/redkale/mq/MessageProducers.java @@ -28,12 +28,8 @@ public class MessageProducers { } public MessageProducer getProducer(MessageRecord message) { - int hash; - if (message.getGroupid() != null && !message.getGroupid().isEmpty()) { - hash = message.getGroupid().hashCode(); - } else if (message.getUserid() > 0) { - hash = message.getUserid(); - } else { + int hash = message.hash(); + if (hash == 0) { hash = index.incrementAndGet(); if (index.get() > 1000 * producers.length) { synchronized (index) { diff --git a/src/org/redkale/mq/MessageRecord.java b/src/org/redkale/mq/MessageRecord.java index d03e9abb2..e2e366f9b 100644 --- a/src/org/redkale/mq/MessageRecord.java +++ b/src/org/redkale/mq/MessageRecord.java @@ -156,6 +156,16 @@ public class MessageRecord implements Serializable { return this; } + public int hash() { + if (groupid != null && !groupid.isEmpty()) { + return groupid.hashCode(); + } else if (userid > 0) { + return userid; + } else { + return 0; + } + } + public MessageRecord version(int version) { this.version = version; return this;