大部分人使用的可能都是github.com/robfig/写的cron模块,但是这个模块里只有动态添加任务,却没有动态删除任务的func, 所以经过一番查找,发现了一个比较好的cron模块:https://github.com/jakecoffman/cron

这个模块虽然fork的人比较少但是个人认为还是不错的,他基本是robfig写的cron的改良,把任务的结构体里增加了name string字段,这就让所有任务都有了一个唯一标示,借助他的RemoveJob function可以轻松根据唯一标示动态删除计划任务。

    废话少说直接上实例:

package main 
import(
    "github.com/jakecoffman/cron"
    "time"
    "niehaha"
)
func main() {
c:= cron.New()
c.Start()  //启动cron
c.AddFunc("0 * * * * *",func(){fmt.Println("niehaha"))},"IAmUniqueName")//增加一个计划任务,其中 spec->“0 * * * * *” 如同linux的crontab一样 分别对应“秒 分 时 日 月 周” 
for{
time.Sleep(120*time.Second)
}
}