golang cronタイミングタスク使用
2992 ワード
1、cron式の基本フォーマット
フィールド名
必要かどうか
許容値
許可される特定の文字
秒(Seconds)
はい
0-59
*/, -
分(Minutes)
はい
0-59
*/, -
時(Hours)
はい
0-23
*/, -
日(Day of month)
はい
1-31
*/, – ?
月(Month)
はい
1-12 or JAN-DEC
*/, -
週(Day of week)
いいえ
0-6 or SUM-SAT
*/, – ?
2、特殊文字の説明
3、例最も簡単なcrontabタスク 複数のタイミングcrontabタスク toml yaml構成と組み合わせてタイミング実行が必要なタスク
linux cron 。linux crontab -e 。 ,linux cron 。 Go cron , ,cron 。( Java Quartz, cron , Go cron , )
cron( ), , , (job)。cron 。
cron , 6 。
フィールド名
必要かどうか
許容値
許可される特定の文字
秒(Seconds)
はい
0-59
*/, -
分(Minutes)
はい
0-59
*/, -
時(Hours)
はい
0-23
*/, -
日(Day of month)
はい
1-31
*/, – ?
月(Month)
はい
1-12 or JAN-DEC
*/, -
週(Day of week)
いいえ
0-6 or SUM-SAT
*/, – ?
:
1) (Month) (Day of week) , :SUN、Sun sun 。
2) (Day of week) , *
2、特殊文字の説明
1) (*)
cron 。 5 (month),
2) (/)
, 1 (minutes) 3-59/15, 3 , 15 ( 3、18、33、48 ), :3/15
3) (,)
, 6 MON,WED,FRI, 、 、
4) (-)
, 3 9-17 9am 5pm ( 9 17)
5) (?)
(Day of month) (Day of week),\ , *
3、例
package main
import (
"github.com/robfig/cron"
"log"
)
func main() {
i := 0
c := cron.New()
spec := "*/5 * * * * ?"
c.AddFunc(spec, func() {
i++
log.Println("cron running:", i)
})
c.Start()
select{}
}
:
2017/07/06 18:28:30 cron running: 1
2017/07/06 18:28:35 cron running: 2
2017/07/06 18:28:40 cron running: 3
2017/07/06 18:28:45 cron running: 4
2017/07/06 18:28:50 cron running: 5
...
package main
import (
"github.com/robfig/cron"
"log"
"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++
log.Println("cron running:", i)
})
//AddJob
c.AddJob(spec, TestJob{})
c.AddJob(spec, Test2Job{})
//
c.Start()
// , .
defer c.Stop()
select{}
}
go run crontab/crontab-2.go
:
testJob1...
2017/07/07 18:46:40 cron running: 1
testJob2...
2017/07/07 18:46:45 cron running: 2
testJob1...
testJob2...
2017/07/07 18:46:50 cron running: 3
testJob1...
testJob2...
2017/07/07 18:46:55 cron running: 4
testJob1...
testJob2...
testJob2...
testJob1...
2017/07/07 18:47:00 cron running: 5
...
...
http://ju.outofmemory.cn/entry/65356