56 lines
1.3 KiB
Go
56 lines
1.3 KiB
Go
// 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
|
|
}
|