fix: Redis limit ignoring max eq 0

This commit is contained in:
tbphp
2025-05-05 12:55:48 +08:00
parent bae57c05c1
commit b7fd1e4a20

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()