package main import ( "fmt" "go.uber.org/zap" "google.golang.org/grpc" "net" "srm/api/v1/test" "srm/proto/purchase_wms" "srm/proto/qualityinspect" "srm/proto/supplier" "srm/core" "srm/global" "srm/initialize" ) //go:generate go env -w GO111MODULE=on //go:generate go env -w GOPROXY=https://goproxy.cn,direct //go:generate go mod tidy //go:generate go mod download // @title Swagger Example API // @version 0.0.1 // @description This is a sample Server pets // @securityDefinitions.apikey ApiKeyAuth // @in header // @name x-token // @BasePath / func main() { global.GVA_VP = core.Viper() // 初始化Viper global.GVA_LOG = core.Zap() // 初始化zap日志库 zap.ReplaceGlobals(global.GVA_LOG) global.GVA_DB = initialize.Gorm() // gorm连接数据库 initialize.DBList() if global.GVA_DB != nil { initialize.RegisterTables() // 初始化表 // 程序结束前关闭数据库链接 db, _ := global.GVA_DB.DB() defer db.Close() } //启动grpc服务 go func() { ln, err := net.Listen("tcp", ":"+global.GVA_CONFIG.System.GrpcPort) if err != nil { global.GVA_LOG.Error("grpc server init error: %v", zap.Error(err)) panic(fmt.Sprintf("grpc server init error: %v", err.Error())) } s := grpc.NewServer() //todo 添加具体服务 purchase_wms.RegisterPurchaseServiceServer(s, &purchase_wms.Server{}) supplier.RegisterSupplierServiceServer(s, &supplier.Server{}) err = s.Serve(ln) if err != nil { global.GVA_LOG.Error("grpc server init error: %v", zap.Error(err)) panic(fmt.Sprintf("grpc server init error: %v", err.Error())) } }() go initGrpcClient() defer closeGrpcClient() core.RunWindowsServer() } func initGrpcClient() { test.InitProductServiceConn() qualityinspect.InitConn() purchase_wms.InitPurchaseConn() test.InitProductServiceConn() } func closeGrpcClient() { test.CloseProductServiceConn() qualityinspect.CloseConn() purchase_wms.ClosePurchaseConn() test.CloseProductServiceConn() }