package main import ( v1 "aps_crm/api/v1" "aps_crm/conf" "aps_crm/initialize" "aps_crm/middleware" "aps_crm/model" "aps_crm/pkg/logx" "aps_crm/router" "fmt" "net/http" "os" "os/signal" "syscall" "time" ) func main() { logx.Init(conf.Conf.Log) defer logx.Sync() //cont := service.NewContainer(service.Type_Container_Docker) //err := cont.Init("123456") //if err != nil { // logx.Errorf("NewContainer Init err:%v", err) // return //} if err := model.Init(); err != nil { logx.Errorf("model Init err:%v", err) return } if err := initialize.Init(); err != nil { logx.Errorf("initialize Init err:%v", err) return } go shutdown() logx.Infof("aps-crm start serve...") server := &http.Server{ Addr: fmt.Sprintf(":%d", conf.Conf.System.Port), Handler: router.InitRouter(), ReadTimeout: 5 * time.Second, WriteTimeout: 5 * time.Second, } v1.InitProductServiceConn() middleware.InitUserConn() v1.InitCodeServiceConn() middleware.InitRefreshUserManager(5, 5, 3600) middleware.RunRefreshUser() ///定时对活跃用户更新用户详情 logx.Error(server.ListenAndServe().Error()) } func shutdown() { quit := make(chan os.Signal, 1) signal.Notify(quit, syscall.SIGKILL, syscall.SIGQUIT, syscall.SIGINT, syscall.SIGTERM) <-quit middleware.StopRefreshUser() v1.CloseProductServiceConn() v1.CloseCodeServiceConn() middleware.CloseUserConn() logx.Infof("aps-crm exited...") os.Exit(0) }