From 29a21d060bd9ca4ccee547433bb3c527d97e4631 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Fri, 31 Jul 2020 10:22:19 +0800 Subject: [PATCH] --- src/org/redkale/mq/MessageProducers.java | 8 ++------ src/org/redkale/mq/MessageRecord.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 6 deletions(-) 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;