组件分享之后端组件——任务管理组件包cron
背景
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
组件基本信息
内容
在我们日常使用Linux时,进行制作一些定时启动或定时执行脚本时经常使用到crontab命令,而在Golang开发时我们想要制作定时任务时需要使用什么呢?这里就提到了一个开源包cron,小伙伴们可以把它理解为golang中的crontab,详细使用方式请查看下方:
安装
go get github.com/robfig/cron/v3
测试用例
import (
"fmt"
"github.com/robfig/cron/v3"
)
func main() {
c := cron.New()
c.AddFunc("0 30 * * * *", func() { fmt.Println("Every hour on the half hour") })
c.AddFunc("@hourly", func() { fmt.Println("Every hour") })
c.AddFunc("@every 1h30m", func() { fmt.Println("Every hour thirty") })
c.Start()
..
// 函数在它们自己的goroutine中异步调用。
...
// funs也可以添加到正在运行的Cron中
c.AddFunc("@daily", func() { fmt.Println("Every day") })
..
// 检查cron作业条目的下一个和上一个运行时。
inspect(c.Entries())
..
c.Stop() // 停止调度程序(不会停止任何已经运行的作业)。
}
本文声明:
88x31.png知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
网友评论