61 lines
1.1 KiB
Go

package main
import "C"
import (
"fmt"
"github.com/facebookarchive/grace/gracehttp"
"hepa-calc-admin-api/api/router"
"hepa-calc-admin-api/config"
"hepa-calc-admin-api/core"
"hepa-calc-admin-api/extend/rabbitMq"
"net/http"
"strconv"
)
func main() {
// 加载配置文件
core.Viper()
// 加载日志
core.Logrus()
// 加载数据库
core.Mysql()
// 加载redis缓存
core.Redis()
// 加载验证器
core.Validator()
// 加载雪花算法
core.Snowflake()
// 确保在应用关闭时关闭 RabbitMQ 连接和通道
defer rabbitMq.Close()
// 启动rabbitmq
core.StartRabbitMq()
// 启动rabbitmq消费者端
core.StartRabbitMqConsume()
// 加载定时器-定时器需要在队列后方,不然可能会出现生产失败的问题
core.StartCron()
// 初始化路由-加载中间件
r := router.Init()
// 启动 HTTP 服务器
server := &http.Server{
Addr: ":" + strconv.Itoa(config.C.Port), // 设置服务器监听的端口号
Handler: r,
}
// 使用 grace 运行服务器
err := gracehttp.Serve(server)
if err != nil {
fmt.Printf("启动失败:%v\n\n", err)
}
}