package service import ( "context" "os" "os/signal" "syscall" "bash_go_service/shared/pkg/logger" "bash_go_service/welcome/service" ) // WelcomeTask 欢迎服务任务 type WelcomeTask struct { service *welcome.Service } // NewWelcomeTask 创建欢迎服务任务实例 func NewWelcomeTask() *WelcomeTask { return &WelcomeTask{} } // Execute 执行任务 func (t *WelcomeTask) Execute(ctx context.Context) { // 初始化logger // 创建welcome service service, err := welcome.NewService() if err != nil { logger.Error("Failed to create welcome service:", err) return } t.service = service defer t.service.Stop() // 启动服务 if err := t.service.Start(); err != nil { logger.Error("Failed to start welcome service:", err) return } // 等待上下文取消或中断信号 sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) select { case <-ctx.Done(): logger.Info("Context cancelled, shutting down welcome service...") case sig := <-sigChan: logger.Info("Received signal %v, shutting down welcome service...", sig) } } // Name 返回任务名称 func (t *WelcomeTask) Name() string { return "WelcomeTask" }