// main.go package main import ( "context" "go-policy-service/config" "go-policy-service/models" "go-policy-service/services" "go-policy-service/utils" "time" "github.com/robfig/cron/v3" ) func main() { // 初始化配置 cfg, err := config.LoadConfig() if err != nil { panic("Failed to load config: " + err.Error()) } // 初始化日志 utils.InitLogger(cfg.LogLevel) // 初始化数据库连接 if err := models.InitDB(cfg); err != nil { utils.Logger.Fatal("Failed to connect database: ", err) } // 创建处理器 processor := services.NewTaskProcessor( utils.NewHttpClient(30*time.Second), cfg.Concurrency, ) // 设置定时任务 c := cron.New() _, err = c.AddFunc("@every "+cfg.Interval, func() { utils.Logger.Info("Starting scheduled task processing...") ctx, cancel := context.WithTimeout(context.Background(), 9*time.Minute) defer cancel() if err := processor.ProcessTasks(ctx); err != nil { utils.Logger.Error("Task processing failed: ", err) } }) if err != nil { utils.Logger.Fatal("Failed to schedule task: ", err) } c.Start() utils.Logger.Info("Service started successfully") // 保持主进程运行 select {} }