mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
Merge pull request #1140 from sxjeru/main
fix(auth): handle quota cooldown in retry logic for transient errors
This commit is contained in:
@@ -1416,8 +1416,12 @@ func (m *Manager) MarkResult(ctx context.Context, result Result) {
|
|||||||
shouldSuspendModel = true
|
shouldSuspendModel = true
|
||||||
setModelQuota = true
|
setModelQuota = true
|
||||||
case 408, 500, 502, 503, 504:
|
case 408, 500, 502, 503, 504:
|
||||||
|
if quotaCooldownDisabled.Load() {
|
||||||
|
state.NextRetryAfter = time.Time{}
|
||||||
|
} else {
|
||||||
next := now.Add(1 * time.Minute)
|
next := now.Add(1 * time.Minute)
|
||||||
state.NextRetryAfter = next
|
state.NextRetryAfter = next
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
state.NextRetryAfter = time.Time{}
|
state.NextRetryAfter = time.Time{}
|
||||||
}
|
}
|
||||||
@@ -1668,7 +1672,11 @@ func applyAuthFailureState(auth *Auth, resultErr *Error, retryAfter *time.Durati
|
|||||||
auth.NextRetryAfter = next
|
auth.NextRetryAfter = next
|
||||||
case 408, 500, 502, 503, 504:
|
case 408, 500, 502, 503, 504:
|
||||||
auth.StatusMessage = "transient upstream error"
|
auth.StatusMessage = "transient upstream error"
|
||||||
|
if quotaCooldownDisabled.Load() {
|
||||||
|
auth.NextRetryAfter = time.Time{}
|
||||||
|
} else {
|
||||||
auth.NextRetryAfter = now.Add(1 * time.Minute)
|
auth.NextRetryAfter = now.Add(1 * time.Minute)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
if auth.StatusMessage == "" {
|
if auth.StatusMessage == "" {
|
||||||
auth.StatusMessage = "request failed"
|
auth.StatusMessage = "request failed"
|
||||||
|
|||||||
Reference in New Issue
Block a user