Merge remote-tracking branch 'origin/S02-轨迹中台第二部分' into test
This commit is contained in:
commit
3fb1b11241
@ -3,12 +3,13 @@ using DotNetCore.CAP.Filter;
|
||||
using SJZY.Expand.ABP.Core;
|
||||
using SJZY.Expand.ABP.Core.Logger;
|
||||
using SJZY.Expand.ABP.Core.PublicMethords;
|
||||
using SJZY.Track.Domain.Consts;
|
||||
|
||||
namespace SJZY.Track.Application.EventHandlers;
|
||||
|
||||
public class CAPFilter : SubscribeFilter
|
||||
public class CapFilter : SubscribeFilter
|
||||
{
|
||||
const string _ERROR_CODE = "Error599";
|
||||
const string ErrorCode = "Error599";
|
||||
|
||||
/// <summary>
|
||||
/// 执行前
|
||||
@ -17,6 +18,8 @@ public class CAPFilter : SubscribeFilter
|
||||
/// <returns></returns>
|
||||
public override Task OnSubscribeExecutingAsync(ExecutingContext context)
|
||||
{
|
||||
if (context.DeliverMessage.Headers["cap-msg-name"]!.EndsWith(GlobalConst.TrackRefreshSubscribe))
|
||||
return Task.CompletedTask;
|
||||
var argumentJsonStr = context.Arguments.ToJson();
|
||||
|
||||
context.DeliverMessage.Headers["sjzy-receive-time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff");
|
||||
@ -29,7 +32,7 @@ public class CAPFilter : SubscribeFilter
|
||||
{
|
||||
var isSkip = !string.IsNullOrEmpty(RedisHelper.Client.Get($"CapExcuteFilter:{hash}"));
|
||||
if (isSkip)
|
||||
throw new BusinessException(_ERROR_CODE, $"检测到重复消费,消费参数:{argumentJsonStr}");
|
||||
throw new BusinessException(ErrorCode, $"检测到重复消费,消费参数:{argumentJsonStr}");
|
||||
|
||||
RedisHelper.Client.Set($"CapExcuteFilter:{hash}", 60 * 10,
|
||||
TimeSpan.FromHours(1).Seconds); // 1h内不允许一模一样的参数重复消费
|
||||
@ -51,7 +54,7 @@ public class CAPFilter : SubscribeFilter
|
||||
context.DeliverMessage.Headers.TryGetValue("sjzy-arguments", out var arguments);
|
||||
context.DeliverMessage.Headers.TryGetValue("cap-msg-id", out var messageId);
|
||||
|
||||
BuildLog(receiveTime, receiveName, arguments, false, messageId);
|
||||
BuildLog(receiveTime!, receiveName!, arguments!, false, messageId!);
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
@ -67,7 +70,7 @@ public class CAPFilter : SubscribeFilter
|
||||
context.ExceptionHandled = true;
|
||||
context.DeliverMessage.Headers.TryGetValue("cap-msg-id", out var messageId);
|
||||
|
||||
if (context.Exception is BusinessException ex && ex.Code == _ERROR_CODE)
|
||||
if (context.Exception is BusinessException ex && ex.Code == ErrorCode)
|
||||
LogHelper.Warn(ex.ToString());
|
||||
else
|
||||
LogHelper.Error($"cap-msg-id:{messageId}\n{context.Exception}");
|
||||
@ -77,7 +80,7 @@ public class CAPFilter : SubscribeFilter
|
||||
context.DeliverMessage.Headers.TryGetValue("cap-msg-name", out var receiveName);
|
||||
context.DeliverMessage.Headers.TryGetValue("sjzy-arguments", out var arguments);
|
||||
|
||||
BuildLog(receiveTime, receiveName, arguments, true, messageId);
|
||||
BuildLog(receiveTime!, receiveName!, arguments!, true, messageId!);
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
@ -129,7 +129,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
|
||||
IsCanDelete = false,
|
||||
OriginTrackContent = @event.OriginTrackContent,
|
||||
OriginTrackData = @event.OriginTrackData,
|
||||
CreateUser = @event.OperationMan,
|
||||
CreateUser = @event.OperationMan ?? "系统",
|
||||
CreateTime = DateTime.Now
|
||||
};
|
||||
|
||||
|
||||
@ -111,7 +111,7 @@ namespace SJZY.Track.Application
|
||||
LogHelper.Error("【严重】CAP失败回调事件发生未处理异常" + ex);
|
||||
}
|
||||
};
|
||||
}).AddSubscribeFilter<CAPFilter>();
|
||||
}).AddSubscribeFilter<CapFilter>();
|
||||
}
|
||||
|
||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user