49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"EnGin/internal/cron"
|
|
"EnGin/internal/db"
|
|
"EnGin/internal/global"
|
|
"EnGin/internal/server"
|
|
|
|
"github.com/spf13/cobra"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
var serverCmd = &cobra.Command{
|
|
Use: "server",
|
|
Short: "启动 Web API 接口服务",
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
// 初始化 db 包
|
|
err := db.InitDB(global.Config.Database.Driver, global.Config.Database.Dsn())
|
|
if err != nil {
|
|
global.Log.Fatal("数据库连接失败", zap.Error(err))
|
|
}
|
|
defer db.Close()
|
|
|
|
// 初始化 Redis
|
|
err = db.InitRedis(global.Config.Redis.Addr, global.Config.Redis.Password, global.Config.Redis.Db)
|
|
if err != nil {
|
|
global.Log.Fatal("初始化 Redis 失败", zap.Error(err))
|
|
}
|
|
defer db.CloseRedis()
|
|
|
|
// 初始化 Casbin(会自动连接数据库并在数据库中建立 casbin_rules 表)
|
|
err = db.InitCasbin()
|
|
if err != nil {
|
|
global.Log.Fatal("初始化 Casbin 失败", zap.Error(err))
|
|
}
|
|
|
|
// 初始化定时任务
|
|
cron.InitCron()
|
|
defer cron.Stop()
|
|
|
|
// 启动 Gin 服务
|
|
server.Run()
|
|
},
|
|
}
|
|
|
|
func init() {
|
|
rootCmd.AddCommand(serverCmd)
|
|
}
|