// main.go package main import ( "context" "go-policy-service/config" "go-policy-service/services" "go-policy-service/utils" "os" "os/signal" "syscall" "time" ) func main() { ctx, stop := context.WithCancel(context.Background()) defer stop() // 初始化配置 cfg, err := config.LoadConfig() if err != nil { panic("Failed to load config: " + err.Error()) } // 初始化日志 utils.InitLogger("logs", cfg.LogLevel) //初始化其他服务 services.Initialize(cfg) // 创建处理器 processor := services.NewTaskProcessor( utils.NewHttpClient(30*time.Second, cfg.IsSkipSSLVerify, cfg.ProxyUrl), cfg, ) processor.Run(cfg) utils.Logger.Info("Service started successfully") // 注册优雅关闭 sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) select { case <-sigCh: utils.Logger.Info("Received shutdown signal") stop() utils.CloseResources() case <-ctx.Done(): } }