user-srv/main.go

94 lines
1.7 KiB
Go
Raw Permalink Normal View History

2024-01-31 07:35:17 +00:00
package main
import (
"context"
2024-02-02 09:48:47 +00:00
"log"
2024-01-31 07:35:17 +00:00
"os"
"os/signal"
"time"
server "user-srv/Server"
"user-srv/config"
"user-srv/mysql"
"user-srv/redis"
2024-02-02 09:48:47 +00:00
"github.com/joho/godotenv"
2024-01-31 07:35:17 +00:00
"github.com/sirupsen/logrus"
)
func main() {
2024-02-02 09:48:47 +00:00
//加载.env文件-给环境变量赋值,在线版本需注释-不使用
err := godotenv.Load()
if err != nil {
log.Fatal(err)
}
// 初始化
2024-01-31 07:35:17 +00:00
if err := runInit(); err != nil {
logrus.WithFields(logrus.Fields{
"func": "runInit()",
}).Warnf("runInit: %s", err.Error())
return
}
//优雅关停
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt)
<-c
_, cancel := context.WithTimeout(context.Background(), 15*time.Second)
defer cancel()
logrus.WithFields(logrus.Fields{
"func": "main",
}).Infof("user-srv service shutting down")
os.Exit(0)
}
//初始化资源
func runInit() error {
2024-02-02 09:48:47 +00:00
//初始化redis
if err := redis.Init(&redis.Config{
Host: config.RedisHost,
Password: config.RedisPassword,
Database: config.RedisDB,
MaxIdle: 3,
MaxActive: 300,
IdleTimeout: 600,
}); err != nil {
logrus.WithFields(logrus.Fields{
"func": "runInit",
}).Warnf("redis.Init:%v", err)
2024-01-31 07:35:17 +00:00
return err
}
//初始化mysql
// mysql初始化
mysql.Init(&mysql.Config{
2024-02-02 09:48:47 +00:00
ConnString: os.Getenv("MYSQL_DSN"),
2024-01-31 07:35:17 +00:00
ConnMaxLifetime: 5,
MaxIdleConns: 5,
MaxOpenConns: 100,
InitTable: true,
})
if err := mysql.InitTable(); err != nil {
logrus.WithFields(logrus.Fields{
"func": "runInit",
}).Warnf("mysql.InitTable:%v", err)
return err
}
2024-02-02 09:48:47 +00:00
2024-01-31 07:35:17 +00:00
//初始化grpc
go server.StartGrpcServer()
2024-02-02 09:48:47 +00:00
// 初始化consul
if err := server.ConsulGrpc(); err != nil {
return err
}
2024-01-31 07:35:17 +00:00
//初始化 grpc-gateway
return server.StartGwServer()
}