57 lines
1.3 KiB
Go
57 lines
1.3 KiB
Go
// Package main 是猪场控制系统的入口点
|
|
// 负责初始化核心应用并管理其生命周期
|
|
// @title 猪场管理系统API
|
|
// @version 1.0
|
|
// @description 猪场管理系统API文档
|
|
// @host localhost:8086
|
|
// @BasePath /
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"git.huangwc.com/pig/pig-farm-controller/internal/config"
|
|
"git.huangwc.com/pig/pig-farm-controller/internal/core"
|
|
"git.huangwc.com/pig/pig-farm-controller/internal/logs"
|
|
)
|
|
|
|
func main() {
|
|
// 初始化日志记录器
|
|
logger := logs.NewLogger()
|
|
|
|
// 加载配置
|
|
cfg := config.NewConfig()
|
|
if err := cfg.Load("config.yml"); err != nil {
|
|
logger.Error("配置加载失败: " + err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
// 创建核心应用实例
|
|
app := core.NewApplication(cfg)
|
|
|
|
// 启动核心应用
|
|
if err := app.Start(); err != nil {
|
|
logger.Error("应用启动失败: " + err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
// 记录应用启动成功
|
|
logger.Info("应用启动成功")
|
|
|
|
// 等待中断信号以优雅地关闭应用
|
|
sigChan := make(chan os.Signal, 1)
|
|
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
|
|
<-sigChan
|
|
|
|
// 停止核心应用
|
|
if err := app.Stop(); err != nil {
|
|
logger.Error("应用停止失败: " + err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
// 记录应用停止成功
|
|
logger.Info("应用停止成功")
|
|
}
|