config.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package config
  2. import (
  3. "github.com/caarlos0/env/v9"
  4. "github.com/joho/godotenv" // 新增依赖
  5. )
  6. type Config struct {
  7. // 数据库配置
  8. DBHost string `env:"DB_HOST" envDefault:"localhost"`
  9. DBPort int `env:"DB_PORT" envDefault:"3306"`
  10. DBUser string `env:"DB_USER" envDefault:"root"`
  11. DBPassword string `env:"DB_PASSWORD" envDefault:"password"`
  12. DBName string `env:"DB_NAME" envDefault:"tasks"`
  13. //服务器配置
  14. Concurrency int `env:"CONCURRENCY" envDefault:"20"`
  15. Interval string `env:"INTERVAL" envDefault:"10m"`
  16. MaxTaskBatch int `env:"MAX_TASK_BATCH" envDefault:"1000"`
  17. MaxTaskAge string `env:"MAX_TASK_AGE" envDefault:"24h"` // 支持time.ParseDuration格式
  18. // Redis配置
  19. RedisHost string `env:"REDIS_HOST" envDefault:"localhost"`
  20. RedisPort int `env:"REDIS_PORT" envDefault:"6379"`
  21. RedisPassword string `env:"REDIS_PASSWORD" envDefault:""`
  22. RedisDB int `env:"REDIS_DB" envDefault:"0"`
  23. IsSkipSSLVerify bool `env:"IS_SKIP_SSL_VERIFY" envDefault:"false"`
  24. //MongoDB配置
  25. MongoURI string `env:"MONGO_URI" envDefault:"mongodb://localhost:27017"`
  26. //日志配置
  27. LogLevel string `env:"LOG_LEVEL" envDefault:"info"`
  28. //业务配置
  29. HgApiUrl string `env:"HG_API_URL" envDefault:"https://partner.huoli.com"`
  30. ProxyUrl string `env:"PORXY_URL" envDefault:"127.0.0.1:1080"`
  31. PushUrl string `env:"POLICY_PUSH_URL" envDefault:"http://direct.ysjipiao.com:8686"`
  32. }
  33. func LoadConfig() (*Config, error) {
  34. // 加载.env文件
  35. _ = godotenv.Load() // 自动从项目根目录加载.env
  36. cfg := &Config{}
  37. if err := env.Parse(cfg); err != nil {
  38. return nil, err
  39. }
  40. return cfg, nil
  41. }