您现在的位置是:首页 > 文章详情

Golang 入门系列(八) cron定时任务

日期:2019-03-13点击:611

1、cron 表达式的基本格式

 Go 实现的cron 表达式的基本语法跟linux 中的 crontab基本是类似的。cron(计划任务),就是按照约定的时间,定时的执行特定的任务(job)。cron 表达式 表达了这种约定。 cron 表达式代表了一个时间集合,使用 6 个空格分隔的字段表示。如果对cron 表达式不清楚的,可以看看我之前介绍quartz.net 的文章, Quartz.NET总结(二)CronTrigger和Cron表达式 。
 

2、使用的包

github.com/robfig/cron

 

3、示例

  • 创建最简单的最简单cron任务
复制代码
package main

import (
"github.com/robfig/cron"
"fmt"
)

func main() {
i := 0
c := cron.New()
spec := "*/5 * * * * ?"
c.AddFunc(spec, func() {
i++
fmt.Println("cron running:", i)
})
c.Start()

select{}
}
复制代码

 

启动后输出如下:
D:\Go_Path\go\src\cronjob>go run singlejob.go cron running: 1 cron running: 2 cron running: 3 cron running: 4 cron running: 5

 

 

  • 多个定时cron任务
复制代码
package main import ( "github.com/robfig/cron" "fmt" ) type TestJob struct { } func (this TestJob)Run() { fmt.Println("testJob1...") } type Test2Job struct { } func (this Test2Job)Run() { fmt.Println("testJob2...") } //启动多个任务 func main() { i := 0 c := cron.New() //AddFunc spec := "*/5 * * * * ?" c.AddFunc(spec, func() { i++ fmt.Println("cron running:", i) }) //AddJob方法  c.AddJob(spec, TestJob{}) c.AddJob(spec, Test2Job{}) //启动计划任务  c.Start() //关闭着计划任务, 但是不能关闭已经在执行中的任务.  defer c.Stop() select{} }
复制代码

 

 启动后输出如下:
复制代码
D:\Go_Path\go\src\cronjob>go run multijob.go cron running: 1 testJob1... testJob2... testJob1... cron running: 2 testJob2... testJob1... testJob2... cron running: 3 cron running: 4 testJob1... testJob2...
复制代码

 

4、最后

以上,就将Golang中如何创建定时任务做了简单介绍,实际使用中,大家可以可结合toml yaml 配置需要定时执行的任务。

原文链接:https://yq.aliyun.com/articles/693683
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章