-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.go
89 lines (73 loc) · 2.13 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package main
import (
"fmt"
"gin_app/app"
"gin_app/app/service"
"gin_app/config"
"os"
"github.com/gin-gonic/gin"
"github.com/yitter/idgenerator-go/idgen"
)
var (
AppVersion = "Not provided"
GoVersion = "Not provided"
BuildTime = "Not provided"
BuildUser = "Not provided"
CommitId = "Not provided"
)
func main() {
// 编译时注入信息
args := os.Args
if len(args) == 2 && (args[1] == "-v" || args[1] == "version") {
fmt.Println("-------------------")
fmt.Printf("App Version: %s\n", AppVersion)
fmt.Printf("Go Version: %s\n", GoVersion)
fmt.Printf("Build Time: %s\n", BuildTime)
fmt.Printf("Build User: %s\n", BuildUser)
fmt.Printf("Git Commit Id: %s\n", CommitId)
fmt.Println("-------------------")
return
}
// 初始化配置
config.Init()
defer config.SugarLog.Sync()
r := gin.New()
// /8表示IP地址的前8位是网络地址或者子网地址,后24位为主机地址
_ = r.SetTrustedProxies([]string{"127.0.0.0/8", "10.0.0.0/8"})
middlewares := app.ReadMiddleware()
r.Use(middlewares...)
// 简单的路由组: api
r.GET("/", service.Index)
router := r.Group("/api")
app.ReadRouters(router)
app.RegisterValidation()
// srv := &http.Server{
// Addr: ":8080",
// Handler: r,
// }
// go func() {
// // 服务连接
// if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
// log.Fatalf("listen: %s\n", err)
// }
// }()
// // 等待中断信号以优雅地关闭服务器(设置 5 秒的超时时间)
// quit := make(chan os.Signal)
// signal.Notify(quit, os.Interrupt)
// <-quit
// // log.Println("Shutdown Server ...")
// ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
// defer cancel()
// if err := srv.Shutdown(ctx); err != nil {
// log.Fatal("Server Shutdown:", err)
// }
// log.Println("Server exiting")
var options = idgen.NewIdGeneratorOptions(1)
idgen.SetIdGenerator(options)
fmt.Println(">>>雪花id生成器初始化完成")
app.InitSchedule()
// By default it serves on :8080 unless a
// PORT environment variable was defined.
// r.Run(":8000") for a hard coded port
r.Run(":" + config.Cfg.Server.Port)
}