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

@@ -47,6 +47,7 @@ type Config struct {
CORS types.CORSConfig `json:"cors"`
Performance types.PerformanceConfig `json:"performance"`
Log types.LogConfig `json:"log"`
Database types.DatabaseConfig `json:"database"`
RedisDSN string `json:"redis_dsn"`
}
@@ -102,6 +103,7 @@ func (m *Manager) ReloadConfig() error {
Performance: types.PerformanceConfig{
MaxConcurrentRequests: parseInteger(os.Getenv("MAX_CONCURRENT_REQUESTS"), 100),
EnableGzip: parseBoolean(os.Getenv("ENABLE_GZIP"), true),
KeyValidationPoolSize: parseInteger(os.Getenv("KEY_VALIDATION_POOL_SIZE"), 10),
},
Log: types.LogConfig{
Level: getEnvOrDefault("LOG_LEVEL", "info"),
@@ -110,6 +112,10 @@ func (m *Manager) ReloadConfig() error {
FilePath: getEnvOrDefault("LOG_FILE_PATH", "logs/app.log"),
EnableRequest: parseBoolean(os.Getenv("LOG_ENABLE_REQUEST"), true),
},
Database: types.DatabaseConfig{
DSN: os.Getenv("DATABASE_DSN"),
AutoMigrate: parseBoolean(os.Getenv("DB_AUTO_MIGRATE"), true),
},
RedisDSN: os.Getenv("REDIS_DSN"),
}
m.config = config
@@ -154,6 +160,11 @@ func (m *Manager) GetRedisDSN() string {
return m.config.RedisDSN
}
// GetDatabaseConfig returns the database configuration.
func (m *Manager) GetDatabaseConfig() types.DatabaseConfig {
return m.config.Database
}
// GetEffectiveServerConfig returns server configuration merged with system settings
func (m *Manager) GetEffectiveServerConfig() types.ServerConfig {
config := m.config.Server
@@ -217,6 +228,7 @@ func (m *Manager) DisplayConfig() {
}
logrus.Infof(" CORS: %s", corsStatus)
logrus.Infof(" Max concurrent requests: %d", perfConfig.MaxConcurrentRequests)
logrus.Infof(" Concurrency pool size: %d", perfConfig.KeyValidationPoolSize)
gzipStatus := "disabled"
if perfConfig.EnableGzip {

View File

@@ -37,7 +37,6 @@ type SystemSettings struct {
// 密钥验证
KeyValidationIntervalMinutes int `json:"key_validation_interval_minutes" default:"60" name:"定时验证周期" category:"密钥验证" desc:"后台定时验证密钥的默认周期(分钟)" validate:"min=5"`
KeyValidationConcurrency int `json:"key_validation_concurrency" default:"10" name:"验证并发数" category:"密钥验证" desc:"执行密钥验证时的并发 goroutine 数量" validate:"min=10,max=200"`
KeyValidationTaskTimeoutMinutes int `json:"key_validation_task_timeout_minutes" default:"60" name:"手动验证超时" category:"密钥验证" desc:"手动触发的全量验证任务的超时时间(分钟)" validate:"min=10"`
}
@@ -375,8 +374,8 @@ func (sm *SystemSettingsManager) DisplayCurrentSettings() {
logrus.Infof(" Request timeouts: request=%ds, response=%ds, idle_conn=%ds",
sm.settings.RequestTimeout, sm.settings.ResponseTimeout, sm.settings.IdleConnTimeout)
logrus.Infof(" Request log retention: %d days", sm.settings.RequestLogRetentionDays)
logrus.Infof(" Key validation: interval=%dmin, concurrency=%d, task_timeout=%dmin",
sm.settings.KeyValidationIntervalMinutes, sm.settings.KeyValidationConcurrency, sm.settings.KeyValidationTaskTimeoutMinutes)
logrus.Infof(" Key validation: interval=%dmin, task_timeout=%dmin",
sm.settings.KeyValidationIntervalMinutes, sm.settings.KeyValidationTaskTimeoutMinutes)
}
// 辅助方法