feat: 并发池功能

This commit is contained in:
tbphp
2025-07-06 02:00:21 +08:00
parent e6fe973ea4
commit 4dc17c12d5
9 changed files with 298 additions and 137 deletions

View File

@@ -5,6 +5,7 @@ import (
"fmt"
"gpt-load/internal/config"
"gpt-load/internal/models"
"gpt-load/internal/types"
"sync"
"time"
@@ -25,15 +26,17 @@ type KeyManualValidationService struct {
Validator *KeyValidatorService
TaskService *TaskService
SettingsManager *config.SystemSettingsManager
ConfigManager types.ConfigManager
}
// NewKeyManualValidationService creates a new KeyManualValidationService.
func NewKeyManualValidationService(db *gorm.DB, validator *KeyValidatorService, taskService *TaskService, settingsManager *config.SystemSettingsManager) *KeyManualValidationService {
func NewKeyManualValidationService(db *gorm.DB, validator *KeyValidatorService, taskService *TaskService, settingsManager *config.SystemSettingsManager, configManager types.ConfigManager) *KeyManualValidationService {
return &KeyManualValidationService{
DB: db,
Validator: validator,
TaskService: taskService,
SettingsManager: settingsManager,
ConfigManager: configManager,
}
}
@@ -68,7 +71,9 @@ func (s *KeyManualValidationService) runValidation(group *models.Group, keys []m
jobs := make(chan models.APIKey, len(keys))
results := make(chan bool, len(keys))
concurrency := s.SettingsManager.GetInt("key_validation_concurrency", 10)
performanceConfig := s.ConfigManager.GetPerformanceConfig()
concurrency := performanceConfig.KeyValidationPoolSize
if concurrency <= 0 {
concurrency = 10
}