轮询任务
package main import ( "time" "github.com/domgoer/gotask" ) func main() { tk,_ := gotask.NewTask(time.Second*20,func() { // do ... }) gotask.AddToTaskList(tk) }
注意
当task的轮询速度快于执行速度时,需要设置合理的结束时间,来防止goroutine的泄露。
动态修改轮询任务的执行时间
package main import ( "time" "github.com/domgoer/gotask" ) func main() { tk,_ := gotask.NewTask(time.Second*20,func() { // do ... }) gotask.AddToTaskList(tk) // 修改执行时间,立即生效 tk.SetInterval(time.Second*30) }
定时任务
package main import ( "github.com/domgoer/gotask" ) func main() { tkDay,_ := gotask.NewDailyTask("12:20:00",func() { // do ... }) tkMonth,_ := gotask.NewMonthlyTask("20 12:20:00",func() { // do ... }) tkYear,_ := gotask.NewYearlyTask("03-01 12:20:00",func(){}) gotask.AddToTaskList(tkDay) gotask.AddToTaskList(tkMonth) gotask.AddToTaskList(tkYear) }
多任务
package main import ( "github.com/domgoer/gotask" ) func main() { tkDays,_ := gotask.NewDailyTasks([]string{"12:20:00","10:10:10"},func() { // do ... }) tkMonths,_ := gotask.NewMonthlyTasks([]string{"20 12:20:00","21 10:10:10"},func() { // do ... }) gotask.AddToTaskList(tkDays...) gotask.AddToTaskList(tkMonths...) }
暂停
package main import ( "github.com/domgoer/gotask" ) func main() { gotask.Pause("task.ID()") }
恢复
package main import ( "github.com/domgoer/gotask" ) func main() { gotask.Resume("task.ID()") }
移除
package main import ( "github.com/domgoer/gotask" ) func main() { gotask.Remove("task.ID()") }