package service import ( "context" "time" "bash_go_service/config-loader/pkg/manager" "bash_go_service/shared/pkg/constants" "bash_go_service/shared/pkg/logger" ) // ConfigManagerTask 配置管理器任务 type ConfigManagerTask struct { manager *manager.ConfigManager } func NewConfigManagerTask() *ConfigManagerTask { return &ConfigManagerTask{ manager: manager.NewConfigManager(constants.ConfigFile, 5*time.Second), } } func (t *ConfigManagerTask) Execute(ctx context.Context) { // 初始化配置管理器 if err := t.manager.Initialize(); err != nil { logger.Error("Failed to initialize config manager: %v", err) return } // 启动配置监控 t.manager.StartWatching() // 等待上下文取消 <-ctx.Done() // 停止配置管理器 t.manager.Stop() // 清理共享内存 if err := t.manager.ClearSharedMemory(); err != nil { logger.Error("Failed to clear shared memory: %v", err) } logger.Info("Config manager task stopped") } func (t *ConfigManagerTask) Name() string { return "ConfigManagerTask" }