From 7331076e44cf2480042daad80f0c3963443ee270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Mon, 1 Apr 2024 18:16:50 +0800 Subject: [PATCH] =?UTF-8?q?change=EF=BC=9A=E6=9C=AC=E5=9C=B0=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E4=B8=8D=E5=81=9A=E5=B9=82=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Application/EventHandlers/CAPFilter.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs b/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs index 6966de18..d6186324 100644 --- a/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs +++ b/src/SJZY.Track.Application/EventHandlers/CAPFilter.cs @@ -24,6 +24,12 @@ public class CapFilter : SubscribeFilter if (context.DeliverMessage.Headers["cap-msg-name"]!.EndsWith(GlobalConst.TrackRefreshSubscribe)) return Task.CompletedTask; + // 本地调试不做幂等 + if (System.Diagnostics.Debugger.IsAttached) + { + return Task.CompletedTask; + } + var argumentJsonStr = context.Arguments.ToJson(); context.DeliverMessage.Headers["sjzy-arguments"] = argumentJsonStr; @@ -33,8 +39,8 @@ public class CapFilter : SubscribeFilter using (RedisHelper.Client.Lock("Filter:" + hash, 10)) { var isSkip = !string.IsNullOrEmpty(RedisHelper.Client.Get($"CapExcuteFilter:{hash}")); - // if (isSkip) - // throw new BusinessException(ErrorCode, $"检测到重复消费,消费参数:{argumentJsonStr}"); + if (isSkip) + throw new BusinessException(ErrorCode, $"检测到重复消费,消费参数:{argumentJsonStr}"); RedisHelper.Client.Set($"CapExcuteFilter:{hash}", 60 * 10, TimeSpan.FromHours(1).Seconds); // 1h内不允许一模一样的参数重复消费