61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package main
|
|
|
|
import "C"
|
|
import (
|
|
"fmt"
|
|
"github.com/facebookarchive/grace/gracehttp"
|
|
"hepa-calc-api/api/router"
|
|
"hepa-calc-api/config"
|
|
"hepa-calc-api/core"
|
|
"hepa-calc-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)
|
|
}
|
|
}
|