mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-18 20:30:51 +08:00
feat: add client availability tracking and error handling improvements
- Introduced `IsAvailable` and `SetUnavailable` methods to clients for availability tracking. - Integrated availability checks in client selection logic to skip unavailable clients. - Enhanced error handling by marking clients unavailable on specific error codes (e.g., 401, 402). - Removed redundant quota verification logs in client reordering logic.
This commit is contained in:
@@ -61,6 +61,7 @@ func NewQwenClient(cfg *config.Config, ts *qwen.QwenTokenStorage) *QwenClient {
|
||||
cfg: cfg,
|
||||
modelQuotaExceeded: make(map[string]*time.Time),
|
||||
tokenStorage: ts,
|
||||
isAvailable: true,
|
||||
},
|
||||
qwenAuth: qwen.NewQwenAuth(cfg),
|
||||
}
|
||||
@@ -447,3 +448,13 @@ func (c *QwenClient) IsModelQuotaExceeded(model string) bool {
|
||||
func (c *QwenClient) GetRequestMutex() *sync.Mutex {
|
||||
return nil
|
||||
}
|
||||
|
||||
// IsAvailable returns true if the client is available for use.
|
||||
func (c *QwenClient) IsAvailable() bool {
|
||||
return c.isAvailable
|
||||
}
|
||||
|
||||
// SetUnavailable sets the client to unavailable.
|
||||
func (c *QwenClient) SetUnavailable() {
|
||||
c.isAvailable = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user