// Package crontask/job_handlers 任务处理器文件 package crontask import ( "log" "os/exec" ) func (cm *CronManager) registerDefaultHandlers() { // mysql数据库备份任务 cm.RegisterHandler("backup_data", func() error { err := ExecuteShellCommand("backup_data", "./backup_mysql.sh start") if err != nil { return err } err = ExecuteShellCommand("backup_mysql", "./backup_mysql.sh clean") if err != nil { return err } return nil }) // 系统监控 cm.RegisterHandler("system_monitor", func() error { log.Printf("system_monitor !!!") return nil }) // 执行日志轮转任务 cm.RegisterHandler("cleanup_log", func() error { return ExecuteShellCommand("cleanup_log", "./gin-app.sh cleanlogs") }) } // ExecuteShellCommand 执行shell命令的公共方法 func ExecuteShellCommand(name, command string) error { cmd := exec.Command("/bin/bash", "-c", command) output, err := cmd.CombinedOutput() if err != nil { log.Printf("[%s] Shell command execution failed: %v", name, err) log.Printf("[%s] Command output: %s", name, output) return err } log.Printf("[%s] Shell command executed successfully", name) log.Printf("[%s] Command output: %s", name, output) return nil } // RegisterHandler 注册任务处理器 func (cm *CronManager) RegisterHandler(name string, handler JobHandler) { cm.handlers[name] = handler }