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 * * * *

你可能感兴趣的:(golang 定时任务)