仓库地址:
timer-task: 定时任务处理
定时任务库
获取组件库
go get -u gitee.com/tym_hmm/timer-task
使用方式
1.运行服务
TimerTask.TaskInstance().Run()
2.添加任务
- 定时执行(每间隔多少时间执行)
定案例为每2秒执行一次
#定时执行(每间隔多少时间执行) #定案例为每2秒执行一次 taskNode := TimerTask.NewInfoNode("testJob") taskNode.SetHandle(func(name string, infoNode *TimerTask.InfoNode, time string) { fmt.Println("任务执行回调" + name + ", time=>" + time) }) taskNode.SetErrorHandle(func(name string, code int, message string) { fmt.Println("任务错误[code:" + strconv.Itoa(code) + ", message:" + message + "]") }) taskNode.SetExecType(TimerTask.EXEC_TYPE_INTVAL) taskNode.SetIntervalTime(2000) TimerTask.TaskInstance().AddJob(taskNode)
2)每天执行
此案例为每天凌晨3:00执行
#每天执行 #此案例为每天凌晨3:00执行 taskNode := TimerTask.NewInfoNode("testJob") taskNode.SetHandle(func(name string, infoNode *TimerTask.InfoNode, time string) { fmt.Println("任务执行回调" + name + ", time=>" + time) }) taskNode.SetErrorHandle(func(name string, code int, message string) { fmt.Println("任务错误[code:" + strconv.Itoa(code) + ", message:" + message + "]") }) taskNode.SetHour(3)// TimerTask.TaskInstance().AddJob(taskNode) _ = kelleyCrawler.CrawlerInstance().AddJob(infoNode)
3)每小时执行
此案例为间隔小时整点执行
如
当前时间为11:20 下次执行为12:00
当前时间为13:20 下次执行时间为:14:00
#每小时执行 taskNode := TimerTask.NewInfoNode("testJobHour") taskNode.SetHandle(func(name string, infoNode *TimerTask.InfoNode, time string) { fmt.Println("任务执行回调" + name + ", time=>" + time) }) taskNode.SetErrorHandle(func(name string, code int, message string) { fmt.Println("任务错误[code:" + strconv.Itoa(code) + ", message:" + message + "]") }) taskNode.SetExecType(TimerTask.EXEC_TYPE_HOUR) taskNode.SetHour(1) TimerTask.TaskInstance().AddJob(taskNode)