zhangqian
2024-03-20 4f526b034a6e13a521ad71dcbdbea97043d6ea19
main.go
@@ -3,10 +3,17 @@
import (
   "aps_crm/conf"
   "aps_crm/initialize"
   "aps_crm/middleware"
   "aps_crm/model"
   "aps_crm/model/grpc_init"
   "aps_crm/pkg/logx"
   "aps_crm/proto/client"
   "aps_crm/proto/crm_aps"
   "aps_crm/proto/product_inventory"
   "aps_crm/router"
   "fmt"
   "google.golang.org/grpc"
   "net"
   "net/http"
   "os"
   "os/signal"
@@ -43,6 +50,32 @@
      ReadTimeout:  5 * time.Second,
      WriteTimeout: 5 * time.Second,
   }
   //启动grpc客户端
   go middleware.InitUserConn()
   go grpc_init.InitProductInventoryServiceConn()
   go grpc_init.InitCrmApsGrpcServiceConn()
   //启动grpc服务
   go func() {
      ln, err := net.Listen("tcp", ":"+conf.Conf.System.GrpcPort)
      if err != nil {
         logx.Errorf("grpc server init error: %v", err.Error())
         panic(fmt.Sprintf("grpc server init error: %v", err.Error()))
      }
      s := grpc.NewServer()
      //todo 添加具体服务
      product_inventory.RegisterProductInventoryServiceServer(s, &product_inventory.Server{})
      crm_aps.RegisterCrmAndApsGrpcServiceServer(s, &crm_aps.Server{})
      client.RegisterClientServiceServer(s, &client.Server{})
      err = s.Serve(ln)
      if err != nil {
         logx.Errorf("grpc server init error: %v", err.Error())
         panic(fmt.Sprintf("grpc server init error: %v", err.Error()))
      }
   }()
   middleware.InitRefreshUserManager(5, 5, 3600)
   middleware.RunRefreshUser() ///定时对活跃用户更新用户详情
   logx.Error(server.ListenAndServe().Error())
}
@@ -51,6 +84,11 @@
   signal.Notify(quit, syscall.SIGKILL, syscall.SIGQUIT, syscall.SIGINT, syscall.SIGTERM)
   <-quit
   logx.Infof("aps-admin exited...")
   middleware.StopRefreshUser()
   grpc_init.CloseProductInventoryServiceConn()
   middleware.CloseUserConn()
   grpc_init.CloseCrmApsGrpcServiceConn()
   logx.Infof("aps-crm exited...")
   os.Exit(0)
}