| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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"`
- DBMaxIdle int `env:"DB_MAX_IDLE" envDefault:"10"`
- DBMaxOpen int `env:"DB_MAX_OPEN" envDefault:"100"`
- DBMaxLifetime int `env:"DB_MAX_LIFETIME" envDefault:"30"`
- //服务器配置
- 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"`
- //MongoDB配置
- MongoURI string `env:"MONGO_URI" envDefault:"mongodb://localhost:27017"`
- //日志配置
- LogLevel string `env:"LOG_LEVEL" envDefault:"info"`
- //业务配置
- HgApiUrl string `env:"HG_API_URL" envDefault:"https://partner.huoli.com"`
- ProxyUrl string `env:"PORXY_URL" envDefault:"127.0.0.1:1080"`
- PushUrl string `env:"POLICY_PUSH_URL" envDefault:"http://direct.ysjipiao.com:8686"`
- }
- func LoadConfig() (*Config, error) {
- // 加载.env文件
- _ = godotenv.Load() // 自动从项目根目录加载.env
- cfg := &Config{}
- if err := env.Parse(cfg); err != nil {
- return nil, err
- }
- return cfg, nil
- }
|