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  }