// Package ticker ----------------------------- // @file : ticker.go // @author : JJXu // @contact : wavingbear@163.com // @time : 2023/5/6 8:18 // ------------------------------------------- package ticker import ( "fmt" "time" ) type TaskInter interface { Run() error TaskName() string } // 定时器模块 const timerSpace = 10 //定时任务执行间隔,单位:分钟 func SimpleRunTimerTask(tasks ...TaskInter) { doTasks(tasks...) var ticker = time.NewTicker(time.Minute * timerSpace) for { select { case <-ticker.C: fmt.Println("run timer task") doTasks(tasks...) } } } func doTasks(tasks ...TaskInter) { for _, t := range tasks { if err := t.Run(); err != nil { fmt.Printf("执行定时任务 [ %s ] 失败: %s\n", t.TaskName(), err.Error()) } else { fmt.Printf("执行定时任务 [ %s ] 成功:\n", t.TaskName()) } } }