liuhaijun 3f5f28d785 add sheduling agent
Change-Id: I89f35fb3984044c57f10727432755012542f9fd8
2023-11-16 10:55:57 +00:00

69 lines
1.6 KiB
Go

package main
import (
"fmt"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/boot"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/config"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/command"
_ "git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/nats_service"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/routers"
_ "git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/internal/service/heartbeat_service"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/pkg/log"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule-agent/pkg/utils"
"os"
"os/signal"
"strings"
"syscall"
"time"
)
func main() {
run()
}
func run() {
script := strings.Split(boot.Run, ":")
switch script[0] {
case "http":
go func() {
r := routers.SetRouters()
err := r.Run(fmt.Sprintf("%s:%d", config.Config.Server.Host, config.Config.Server.Port))
if err != nil {
panic(err)
}
}()
// wait for signals
chSysSig := make(chan os.Signal, 1)
signal.Notify(chSysSig, syscall.SIGINT, syscall.SIGTERM)
select {
case <-chSysSig:
// 用户发送INTR字符(Ctrl+C)触发
log.Infof("用户发送INTR字符(Ctrl+C)触发中止逻辑")
break
case <-utils.ChUserSig:
// 通过接口
log.Infof("用户通过中止服务接口触发中止逻辑")
break
}
//sig := <-chSysSig
utils.StopCh <- os.Interrupt
// delay 3 seconds
log.Infof("优雅关闭中.....")
time.Sleep(time.Second * 5)
log.Infof("已完成关闭!")
case "command":
if len(script) != 2 {
panic("命令错误,缺少重要参数")
}
command.Run(script[1])
default:
panic("执行脚本错误")
}
}