Merge pull request #2178 from LeonDevLifeLog/main
feat: add environment variable switch for critical rate limit
This commit is contained in:
commit
0ce4cd449d
@ -159,14 +159,15 @@ var (
|
|||||||
GlobalWebRateLimitNum int
|
GlobalWebRateLimitNum int
|
||||||
GlobalWebRateLimitDuration int64
|
GlobalWebRateLimitDuration int64
|
||||||
|
|
||||||
|
CriticalRateLimitEnable bool
|
||||||
|
CriticalRateLimitNum = 20
|
||||||
|
CriticalRateLimitDuration int64 = 20 * 60
|
||||||
|
|
||||||
UploadRateLimitNum = 10
|
UploadRateLimitNum = 10
|
||||||
UploadRateLimitDuration int64 = 60
|
UploadRateLimitDuration int64 = 60
|
||||||
|
|
||||||
DownloadRateLimitNum = 10
|
DownloadRateLimitNum = 10
|
||||||
DownloadRateLimitDuration int64 = 60
|
DownloadRateLimitDuration int64 = 60
|
||||||
|
|
||||||
CriticalRateLimitNum = 20
|
|
||||||
CriticalRateLimitDuration int64 = 20 * 60
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var RateLimitKeyExpirationDuration = 20 * time.Minute
|
var RateLimitKeyExpirationDuration = 20 * time.Minute
|
||||||
|
|||||||
@ -99,6 +99,9 @@ func InitEnv() {
|
|||||||
GlobalWebRateLimitNum = GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT", 60)
|
GlobalWebRateLimitNum = GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT", 60)
|
||||||
GlobalWebRateLimitDuration = int64(GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT_DURATION", 180))
|
GlobalWebRateLimitDuration = int64(GetEnvOrDefault("GLOBAL_WEB_RATE_LIMIT_DURATION", 180))
|
||||||
|
|
||||||
|
CriticalRateLimitEnable = GetEnvOrDefaultBool("CRITICAL_RATE_LIMIT_ENABLE", true)
|
||||||
|
CriticalRateLimitNum = GetEnvOrDefault("CRITICAL_RATE_LIMIT", 20)
|
||||||
|
CriticalRateLimitDuration = int64(GetEnvOrDefault("CRITICAL_RATE_LIMIT_DURATION", 20*60))
|
||||||
initConstantEnv()
|
initConstantEnv()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -102,7 +102,10 @@ func GlobalAPIRateLimit() func(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func CriticalRateLimit() func(c *gin.Context) {
|
func CriticalRateLimit() func(c *gin.Context) {
|
||||||
return rateLimitFactory(common.CriticalRateLimitNum, common.CriticalRateLimitDuration, "CT")
|
if common.CriticalRateLimitEnable {
|
||||||
|
return rateLimitFactory(common.CriticalRateLimitNum, common.CriticalRateLimitDuration, "CT")
|
||||||
|
}
|
||||||
|
return defNext
|
||||||
}
|
}
|
||||||
|
|
||||||
func DownloadRateLimit() func(c *gin.Context) {
|
func DownloadRateLimit() func(c *gin.Context) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user