| | |
| | | |
| | | import ( |
| | | "context" |
| | | "fmt" |
| | | "google.golang.org/grpc" |
| | | "net" |
| | | "net/http" |
| | | "os" |
| | | "os/signal" |
| | | "syscall" |
| | | "time" |
| | | "wms/conf" |
| | | "wms/controllers" |
| | | "wms/models" |
| | | "wms/pkg/logx" |
| | | "wms/proto/product_inventory" |
| | | "wms/router" |
| | | ) |
| | | |
| | |
| | | WriteTimeout: 5 * time.Second, |
| | | } |
| | | go shutdown(server) |
| | | //启动grpc客户端 |
| | | go controllers.InitInventoryOrderServiceConn() |
| | | //启动grpc服务 |
| | | go func() { |
| | | ln, err := net.Listen("tcp", ":"+conf.WebConf.GrpcPort) |
| | | if err != nil { |
| | | logx.Errorf("grpc server init error: %v", err.Error()) |
| | | panic(fmt.Sprintf("grpc server init error: %v", err.Error())) |
| | | } |
| | | fmt.Println("-----------监听端口: ", conf.WebConf.GrpcPort) |
| | | s := grpc.NewServer() |
| | | //todo 添加具体服务 |
| | | product_inventory.RegisterProductInventoryServiceServer(s, &product_inventory.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())) |
| | | } |
| | | }() |
| | | logx.Error(server.ListenAndServe().Error()) |
| | | } |
| | | |
| | |
| | | ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) |
| | | defer cancel() |
| | | |
| | | controllers.CloseInventoryOrderServiceConn() |
| | | // 关闭HTTP服务器 |
| | | if err := server.Shutdown(ctx); err != nil { |
| | | logx.Infof("服务优雅退出失败: %v", err) |