golang 定时任务

Usage

注册任务到调度器里,当任务要执行的时候会使用goroutines调用,这样每个任务都不会发生阻塞。 

Golang不仅仅是兼容了linux标准的crontab格式,而且扩展了秒。也就是说正常的crontab是 分 时 小时 月 星期,而robfig cron是 秒 分 时 日 月 星期。 

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()


//这些任务都是异步执行的.

c.AddFunc("@daily", func() { fmt.Println("Every day") })


//获取他下次执行的时间. 
inspect(c.Entries())

//关闭着计划任务, 但是不能关闭已经在执行中的任务. 
c.Stop()  

CRON Expression Format

A cron expression represents a set of times, using 6 space-separated fields.

Field name Mandatory? Allowed values Allowed special characters
Seconds Yes 0-59 * / , -
Minutes Yes 0-59 * / , -
Hours Yes 0-23 * / , -
Day of month Yes 1-31 * / , - ?
Month Yes 1-12 or JAN-DEC * / , -
Day of week Yes 0-6 or SUN-SAT * / , - ?

Predefined schedules

You may use one of several pre-defined schedules in place of a cron expression.

Entry Description Equivalent To
@yearly (or @annually) Run once a year, midnight, Jan. 1st 0 0 0 1 1 *
@monthly Run once a month, midnight, first of month 0 0 0 1 * *
@weekly Run once a week, midnight on Sunday 0 0 0 * * 0
@daily (or @midnight) Run once a day, midnight 0 0 0 * * *
@hourly Run once an hour, beginning of hour 0 0 * * * *
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 有理小姐是个好姑娘,总有人说如果没有词来夸一个姑娘的话,那就说她是个好姑娘吧!有理小姐是个光吃不胖的瘦子,总能穿出...
    哈小美阅读 740评论 9 23
  • 第八期百人百天结束了,这期,我跑的是半马班,任务量比挑战班要重些!跑完这期,我觉得我能轻松跑十公里了,然后,多年未...
    小艳子0561阅读 214评论 0 1
  • 今天一哥们生日,一起吃顿饭。酒足饭饱后,对他女友说:“我想你了。”女友回答说:“为什么想我呀?”结果他来了一句:“...
    风若轻云阅读 426评论 0 0
  • 爱奇艺自制的音乐选秀节目《中国有嘻哈》,从6月24日第一集上线后就因为制作人吴亦凡的”free style”登上了...
    培训爱好者阅读 761评论 0 2