初始化项目

This commit is contained in:
皮蛋13361098506
2025-01-06 16:01:02 +08:00
commit 1b77f62820
575 changed files with 69193 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
package signalMgr
// 系统信号管理包
// 提供对操作系统信号的管理支持三种信号syscall.SIGTERM, syscall.SIGINT, syscall.SIGHUP
// 其中syscall.SIGTERM, syscall.SIGINT表示程序终止信号可以绑定一个方法在系统终止时进行调用
// syscall.SIGHUP表示程序重启信号可以绑定一个方法在系统重启时进行调用
// 使用方法:
// 调用func Start(reloadFunc func() []error, exitFunc func() error)
// 传入在重启和终止时需要调用的方法如果不需要则传入nil

View File

@@ -0,0 +1,56 @@
package signalMgr
import (
"fmt"
"os"
"os/signal"
"syscall"
"Framework/exitMgr"
"Framework/goroutineMgr"
"Framework/reloadMgr"
"goutil/debugUtil"
"goutil/logUtil"
)
// Start ...启动信号管理器
func Start() {
go func() {
goroutineName := "signalMgr.Start"
goroutineMgr.Monitor(goroutineName)
defer goroutineMgr.ReleaseMonitor(goroutineName)
sigs := make(chan os.Signal)
signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT, syscall.SIGHUP)
for {
// 准备接收信息
sig := <-sigs
// 输出信号
debugUtil.Println("sig:", sig)
if sig == syscall.SIGHUP {
logUtil.InfoLog("收到重启的信号,准备重新加载配置")
// 重新加载
errList := reloadMgr.Reload()
for _, err := range errList {
logUtil.ErrorLog(fmt.Sprintf("重启失败,错误信息为:%s", err))
}
logUtil.InfoLog("收到重启的信号,重新加载配置完成")
} else {
logUtil.InfoLog("收到退出程序的信号,开始退出……")
// 调用退出的方法
exitMgr.Exit()
logUtil.InfoLog("收到退出程序的信号,退出完成……")
// 一旦收到信号,则表明管理员希望退出程序,则先保存信息,然后退出
os.Exit(0)
}
}
}()
}