Merge pull request #1026 from tbphp/tbphp_fix_redis_limit

fix: Redis limit ignoring max eq 0
This commit is contained in:
IcedTangerine
2025-05-06 22:36:13 +08:00
committed by GitHub

View File

@@ -93,6 +93,7 @@ func redisRateLimitHandler(duration int64, totalMaxCount, successMaxCount int) g
} }
//2.检查总请求数限制并记录总请求当totalMaxCount为0时会自动跳过使用令牌桶限流器 //2.检查总请求数限制并记录总请求当totalMaxCount为0时会自动跳过使用令牌桶限流器
if totalMaxCount > 0 {
totalKey := fmt.Sprintf("rateLimit:%s", userId) totalKey := fmt.Sprintf("rateLimit:%s", userId)
// 初始化 // 初始化
tb := limiter.New(ctx, rdb) tb := limiter.New(ctx, rdb)
@@ -113,6 +114,7 @@ func redisRateLimitHandler(duration int64, totalMaxCount, successMaxCount int) g
if !allowed { if !allowed {
abortWithOpenAiMessage(c, http.StatusTooManyRequests, fmt.Sprintf("您已达到总请求数限制:%d分钟内最多请求%d次包括失败次数请检查您的请求是否正确", setting.ModelRequestRateLimitDurationMinutes, totalMaxCount)) abortWithOpenAiMessage(c, http.StatusTooManyRequests, fmt.Sprintf("您已达到总请求数限制:%d分钟内最多请求%d次包括失败次数请检查您的请求是否正确", setting.ModelRequestRateLimitDurationMinutes, totalMaxCount))
} }
}
// 4. 处理请求 // 4. 处理请求
c.Next() c.Next()