go get github.com/robfig/cron
import (
"github.com/robfig/cron"
)
func main() {
c := cron.New()
// Every hour on the half hour
_ = c.AddFunc("* 30 * * * *", func() { })
// .. in the range 1-3am, 5-7am
_ = c.AddFunc("* 30 1-3, 5-7 * * *", func() {})
// Every Monday and Thursday
_ = c.AddFunc("* * * * * MON,THU", func() {})
// Every hour, starting an hour from now
_ = c.AddFunc("@hourly", func() {})
// Every hour thirty, starting an hour thirty from now
_ = c.AddFunc("@every 1h30m", func() {})
c.Start()
}
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 | * / , - ? |
ex) [* * * * *]
별표(*)는 필드이 모든 값과 일치. 예를 들면, 첫 번째 필드 (분)에 별표를 사용하면 매분 실행된다.
ex) [3-50/5 * * * *]
슬래시(/)는 범위의 증분을 표현하는데 사용. 예를 들면, 첫 번째 필드에 (3-50)/5으로 설정하면 3분에서 50분사이에 5분에 한번 실행. (min-max/term)
ex) [1,5,30 * * * *]
쉽표(,)는 필드의 값을 복수로 설정할 때 사용. 예를 들면, 첫 번째 필드에 (1, 5, 30)으로 설정하면 각 1, 5, 30분에 실행된다.
ex) [1-30 * * * *]
하이픈(-)은 범위를 설정하는데 사용. 예를 들면, 첫 번째 필드에 (1-30)으로 설정하면 매 시간 1~30분까지 매분 실행된다.
Entry | Description | Equivalent To |
---|---|---|
@yearly (or @annually) | Run once a year, midnight, Jan. 1st | 0 0 1 1 * |
@monthly | Run once a month, midnight, first of month | 0 0 1 * * |
@weekly | Run once a week, midnight between Sat/Sun | 0 0 * * 0 |
@daily (or @midnight) | Run once a day, midnight | 0 0 * * * |
@hourly | Run once an hour, beginning of hour | 0 * * * * |
@every <duration>
ex) @every 0h3m6s == @every (60 * 60 * 0 + 60 * 3 + 6)s