github.com/Anderson-Lu/gobox@v0.0.0-20191127065433-3e6c4c2da420/cron/cron.go (about) 1 package cron 2 3 import "github.com/robfig/cron" 4 5 var CronSchaduler JobSchduler 6 7 type JobSchduler struct { 8 jobSchduler *cron.Cron 9 } 10 11 func init() { 12 CronSchaduler = JobSchduler{ 13 jobSchduler: cron.New(), 14 } 15 } 16 17 func (self *JobSchduler) AddAndStartJob(job func(), errHandler func(error), taskName string, cronTab string) { 18 go func() { 19 c := cron.New() 20 c.AddFunc(cronTab, func() { 21 defer func() { 22 if r := recover(); r != nil { 23 errHandler(r.(error)) 24 } 25 }() 26 job() 27 }) 28 c.Start() 29 select {} 30 }() 31 }