diff --git a/internal/cmd/cmd.go b/internal/cmd/cmd.go index 337dace..d95ef8e 100644 --- a/internal/cmd/cmd.go +++ b/internal/cmd/cmd.go @@ -7,12 +7,13 @@ import ( "epic/internal/logic/i18n" "epic/internal/service" "epic/internal/util" - "github.com/gogf/gf/v2/frame/g" - "github.com/gogf/gf/v2/net/ghttp" - "github.com/gogf/gf/v2/os/gcmd" "os" "os/signal" "syscall" + + "github.com/gogf/gf/v2/frame/g" + "github.com/gogf/gf/v2/net/ghttp" + "github.com/gogf/gf/v2/os/gcmd" ) func CORS(r *ghttp.Request) { @@ -28,16 +29,16 @@ var ( Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { // 初始化i18n服务 InitI18nService(ctx) - + // 启动定时任务 if err := service.Cron().StartAllJobs(ctx); err != nil { util.Error(ctx, "Failed to start cron jobs:", err) return err } - + // 设置优雅关闭 setupGracefulShutdown(ctx) - + s := g.Server() s.Use(CORS) s.Group("/", func(group *ghttp.RouterGroup) { @@ -58,17 +59,17 @@ func setupGracefulShutdown(ctx context.Context) { // 创建信号通道 sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) - + // 在后台监听信号 go func() { sig := <-sigChan g.Log().Infof(ctx, "Received signal: %v, shutting down gracefully...", sig) - + // 停止定时任务 if err := service.Cron().StopAllJobs(ctx); err != nil { util.Error(ctx, "Failed to stop cron jobs:", err) } - + // 退出程序 os.Exit(0) }() @@ -79,6 +80,6 @@ func InitI18nService(ctx context.Context) { // 启动i18n自动刷新 i18nLogic := i18n.New() i18nLogic.StartAutoRefresh(ctx) - + util.Info(ctx, "i18n服务初始化完成") }