goCron是一个Golang作业调度工具,可以使用简单的语法定期执行go函数。
github:GitHub - jasonlvhit/gocron: A Golang Job Scheduling Package.
api doc:https://godoc.org/github.com/jasonlvhit/gocron#Every
使用实例
package main
import (
"fmt"
"github.com/jasonlvhit/gocron"
)
func task() {
fmt.Println("I am runnning task.")
}
func taskWithParams(a int, b string) {
fmt.Println(a, b)
}
func main() {
//可并发运行多个任务
//注意 interval>1时调用sAPi
gocron.Every(2).Seconds().Do(task)
gocron.Every(1).Second().Do(taskWithParams, 1, "hi")
//在cron所有操作最后调用 start函数,否则start之后调用的操作无效不执行
//<-gocron.Start()
//在task执行过程中 禁止异常退出
gocron.Every(1).Minute().DoSafely(taskWithParams, 1, "hello")
// 支持在具体某一天、