go_dreamfactory/lego/lego.go
2023-07-13 11:18:39 +08:00

38 lines
868 B
Go

package lego
import (
"runtime"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
)
// 启动服务
func Run(service core.IService, mod ...core.IModule) {
cpuNum := runtime.NumCPU() //获得当前设备的cpu核心数
runtime.GOMAXPROCS(cpuNum) //设置需要用到的cpu数量
err := service.Init(service)
if err != nil {
log.Panicf("服务初始化失败 err=%s", err.Error())
}
err = service.Start()
if err != nil {
log.Panicf("服务启动失败 err=%s", err.Error())
}
service.Run(mod...)
err = service.Destroy()
if err != nil {
log.Panicf("服务销毁失败 err=%s", err.Error())
}
log.Infof("服务【%s】关闭成功", service.GetId())
}
// 错误采集
func Recover(tag string) {
if r := recover(); r != nil {
buf := make([]byte, 1024)
l := runtime.Stack(buf, false)
log.Errorf("%s - %v: %s", tag, r, buf[:l])
}
}