package config import ( "github.com/caarlos0/env/v9" "github.com/joho/godotenv" // 新增依赖 ) type Config struct { // 数据库配置 DBHost string `env:"DB_HOST" envDefault:"localhost"` DBPort int `env:"DB_PORT" envDefault:"3306"` DBUser string `env:"DB_USER" envDefault:"root"` DBPassword string `env:"DB_PASSWORD" envDefault:"password"` DBName string `env:"DB_NAME" envDefault:"tasks"` //服务器配置 Concurrency int `env:"CONCURRENCY" envDefault:"20"` Interval string `env:"INTERVAL" envDefault:"10m"` MaxTaskBatch int `env:"MAX_TASK_BATCH" envDefault:"1000"` MaxTaskAge string `env:"MAX_TASK_AGE" envDefault:"24h"` // 支持time.ParseDuration格式 // Redis配置 RedisHost string `env:"REDIS_HOST" envDefault:"localhost"` RedisPort int `env:"REDIS_PORT" envDefault:"6379"` RedisPassword string `env:"REDIS_PASSWORD" envDefault:""` RedisDB int `env:"REDIS_DB" envDefault:"0"` IsSkipSSLVerify bool `env:"IS_SKIP_SSL_VERIFY" envDefault:"false"` //日志配置 LogLevel string `env:"LOG_LEVEL" envDefault:"info"` //业务配置 HgApiUrl string `env:"HG_API_URL" envDefault:"https://partner.huoli.com"` } func LoadConfig() (*Config, error) { // 加载.env文件 _ = godotenv.Load() // 自动从项目根目录加载.env cfg := &Config{} if err := env.Parse(cfg); err != nil { return nil, err } return cfg, nil }