go_dreamfactory/lego/sys/cron/cron.go

37 lines
754 B
Go

package cron
import (
tcron "github.com/robfig/cron/v3"
)
func newSys(options Options) (sys *Cron, err error) {
parser := tcron.NewParser(tcron.Second | tcron.Minute | tcron.Hour | tcron.Dom | tcron.Month | tcron.Dow | tcron.Descriptor)
sys = &Cron{options: options, cron: tcron.New(tcron.WithParser(parser))}
return
}
type Cron struct {
cron *tcron.Cron
options Options
}
func (this *Cron) Start() {
this.cron.Start()
}
func (this *Cron) Stop() {
this.cron.Stop()
}
func (this *Cron) AddFunc(spec string, cmd func()) (id EntryID, err error) {
var eid tcron.EntryID
if eid, err = this.cron.AddFunc(spec, cmd); err != nil {
id = EntryID(eid)
}
return
}
func (this *Cron) Remove(id EntryID) {
this.cron.Remove(tcron.EntryID(id))
}