From e5ec8b21084eec6086cc66adb569682a32c05dc9 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期四, 03 七月 2025 17:21:27 +0800
Subject: [PATCH] 更新任务异常信息记录功能在CommonConveyorLine_GWJob.cs 文件中,向 WIDESEAWCS_Tasks命名空间添加了一行代码, 将日志信息赋值给taskNext.ExceptionMessage属性,以便在任务处理过程中记录异常信息。

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs
index a09fa3e..9d1ab3b 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Filter/ThrottleFilter.cs
@@ -1,5 +1,6 @@
 锘縰sing Microsoft.AspNetCore.Mvc.Filters;
 using System.Collections.Concurrent;
+using System.Text.Json;
 
 public class ThrottleFilter : IAsyncActionFilter
 {
@@ -14,17 +15,60 @@
     public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
     {
         var actionName = context.ActionDescriptor.DisplayName;
-        if (_lastExecutionTimes.TryGetValue(actionName, out var lastExecutionTime))
+
+        var parameterString = GenerateParameterString(context.ActionArguments);
+        var key = $"{actionName}_{parameterString}";
+
+        if (_lastExecutionTimes.TryGetValue(key, out var lastExecutionTime))
         {
             var elapsedTime = DateTime.Now - lastExecutionTime;
             if (elapsedTime.TotalSeconds < _intervalInSeconds)
             {
-                context.Result = new Microsoft.AspNetCore.Mvc.StatusCodeResult(429);
+                context.Result = new OkObjectResult(new WebResponseContent().Error("璇锋眰杩囦簬棰戠箒锛岃绋嶅悗鍐嶈瘯"));
                 return;
             }
         }
 
-        _lastExecutionTimes[actionName] = DateTime.Now;
+        _lastExecutionTimes[key] = DateTime.Now;
         await next();
     }
+
+    private string GenerateParameterString(IDictionary<string, object> arguments)
+    {
+        if (arguments == null || arguments.Count == 0)
+        {
+            return "";
+        }
+
+        var paramStrings = new List<string>();
+        foreach (var argument in arguments)
+        {
+            var key = argument.Key;
+            var value = argument.Value;
+            string valueString;
+
+            if (value == null)
+            {
+                valueString = "null";
+            }
+            else if (IsSimpleType(value.GetType()))
+            {
+                valueString = value.ToString();
+            }
+            else
+            {
+                valueString = JsonSerializer.Serialize(value);
+            }
+
+            paramStrings.Add($"{key}={valueString}");
+        }
+
+        return string.Join("&", paramStrings);
+    }
+
+    // 鍒ゆ柇绫诲瀷鏄惁涓虹畝鍗曠被鍨�
+    private bool IsSimpleType(Type type)
+    {
+        return type.IsPrimitive || type == typeof(string) || type == typeof(decimal);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3