Commit fa20af81 by 1808837298@qq.com

refactor: Improve model request rate limit middleware execution

parent 7cec111b
...@@ -153,21 +153,23 @@ func memoryRateLimitHandler(duration int64, totalMaxCount, successMaxCount int) ...@@ -153,21 +153,23 @@ func memoryRateLimitHandler(duration int64, totalMaxCount, successMaxCount int)
// ModelRequestRateLimit 模型请求限流中间件 // ModelRequestRateLimit 模型请求限流中间件
func ModelRequestRateLimit() func(c *gin.Context) { func ModelRequestRateLimit() func(c *gin.Context) {
// 如果未启用限流,直接放行 return func(c *gin.Context) {
if !setting.ModelRequestRateLimitEnabled { // 在每个请求时检查是否启用限流
return defNext if !setting.ModelRequestRateLimitEnabled {
} c.Next()
return
// 计算限流参数 }
duration := int64(setting.ModelRequestRateLimitDurationMinutes * 60)
totalMaxCount := setting.ModelRequestRateLimitCount
successMaxCount := setting.ModelRequestRateLimitSuccessCount // 计算限流参数
duration := int64(setting.ModelRequestRateLimitDurationMinutes * 60)
totalMaxCount := setting.ModelRequestRateLimitCount
successMaxCount := setting.ModelRequestRateLimitSuccessCount
// 根据存储类型选择限流处理器 // 根据存储类型选择并执行限流处理器
if common.RedisEnabled { if common.RedisEnabled {
return redisRateLimitHandler(duration, totalMaxCount, successMaxCount) redisRateLimitHandler(duration, totalMaxCount, successMaxCount)(c)
} else { } else {
return memoryRateLimitHandler(duration, totalMaxCount, successMaxCount) memoryRateLimitHandler(duration, totalMaxCount, successMaxCount)(c)
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment