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()
|
}
|