| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // 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(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():
- }
- }
|