first commit
This commit is contained in:
55
crontask/job_handlers.go
Normal file
55
crontask/job_handlers.go
Normal file
@@ -0,0 +1,55 @@
|
||||
// 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
|
||||
}
|
||||
Reference in New Issue
Block a user