From 94d5de51824451b5f821fcd7486915308d7bdcd6 Mon Sep 17 00:00:00 2001 From: hongawen <83944980@qq.com> Date: Tue, 14 Jul 2026 13:02:44 +0100 Subject: [PATCH] =?UTF-8?q?feat(mq-starter-core):=20@MqListener=20idempote?= =?UTF-8?q?nt=20=E9=BB=98=E8=AE=A4=E5=80=BC=E7=BF=BB=E8=BD=AC=E4=B8=BA=20t?= =?UTF-8?q?rue=E2=80=94=E2=80=94=E5=8E=BB=E9=87=8D=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 不需要去重的监听器显式 idempotent=false,或 mq.idempotent.enabled=false 全局关; Registry 无 store 时的 WARN 文案同步改为默认开启口径。 Co-Authored-By: Claude Fable 5 --- .../src/main/java/com/njcn/mq/annotation/MqListener.java | 4 ++-- .../main/java/com/njcn/mq/container/MqListenerRegistry.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mq-starter-core/src/main/java/com/njcn/mq/annotation/MqListener.java b/mq-starter-core/src/main/java/com/njcn/mq/annotation/MqListener.java index 303ff03..52ac0b3 100644 --- a/mq-starter-core/src/main/java/com/njcn/mq/annotation/MqListener.java +++ b/mq-starter-core/src/main/java/com/njcn/mq/annotation/MqListener.java @@ -13,8 +13,8 @@ public @interface MqListener { int batchSize() default 1; int maxRetry() default 3; String tag() default "*"; - /** 是否启用消费去重(按 key)。默认关闭。 */ - boolean idempotent() default false; + /** 是否启用消费去重(按 key)。默认开启,不需要去重时显式置 false。 */ + boolean idempotent() default true; /** 异常落库回调的 bean 名;空表示不落库。 */ String errorHandler() default ""; } diff --git a/mq-starter-core/src/main/java/com/njcn/mq/container/MqListenerRegistry.java b/mq-starter-core/src/main/java/com/njcn/mq/container/MqListenerRegistry.java index 2e74217..2dcd621 100644 --- a/mq-starter-core/src/main/java/com/njcn/mq/container/MqListenerRegistry.java +++ b/mq-starter-core/src/main/java/com/njcn/mq/container/MqListenerRegistry.java @@ -37,7 +37,7 @@ public class MqListenerRegistry implements SmartLifecycle { for (MqListenerEndpoint ep : endpoints) { MqListener meta = ep.getMeta(); if (meta.idempotent() && store == null) { - log.warn("[mq] @MqListener(idempotent=true) 但容器中无 MqIdempotentStore bean,去重不生效: topic={} group={}", + log.warn("[mq] @MqListener 去重已启用(idempotent 默认 true)但容器中无 MqIdempotentStore bean,去重不生效: topic={} group={}", meta.topic(), meta.group()); } MqConsumeErrorHandler eh = resolveErrorHandler(meta);