| | |
| | | |
| | | static HttpsClient() |
| | | { |
| | | // 设置定时器,每10分钟清理一次requestTracker的数据 |
| | | cleanupTimer = new Timer(10 * 60 * 1000); |
| | | // 设置定时器,每5分钟清理一次requestTracker的数据 |
| | | cleanupTimer = new Timer(5 * 60 * 1000); |
| | | cleanupTimer.Elapsed += CleanupRequestTracker; |
| | | cleanupTimer.AutoReset = true; |
| | | cleanupTimer.Enabled = true; |
| | |
| | | // 检查请求次数和时间限制 |
| | | if (requestTracker.TryGetValue(requestKey, out var requestInfo)) |
| | | { |
| | | if (requestInfo.Count >= 5 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(3)) |
| | | if (requestInfo.Count >= 10 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(3)) |
| | | { |
| | | // 如果请求次数超过限制且未超过10分钟,抛出异常 |
| | | Console.WriteLine("请求次数已达到限制,请稍后再试。"); |