**robfig/cron** 安装: ~~~ go get -u github.com/robfig/cron ~~~ 应用: 每分钟执行一次: ~~~ package main import ( "log" "github.com/robfig/cron" ) func main() { i := 0 c := cron.New() spec := "0 */1 * * * *" c.AddFunc(spec, func() { i++ log.Println("execute per second", i) }) c.Start() select {} } ~~~ 其中注意select的用法: golang 的 select 的功能和 select, poll, epoll 相似, 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作。 每天上午9点到12点的第2和第10分钟执行: ~~~ package main import ( "fmt" "github.com/robfig/cron" ) func main() { spec := "2,10 9-12 * * *" // 每天上午9点到12点的第2和第10分钟执行 c := cron.New() c.AddFunc(spec, myFunc) c.Start() select {} } func myFunc() { fmt.Println("execute") } ~~~