base-golang/pkg/crontab/crontab.go

41 lines
628 B
Go
Raw Permalink Normal View History

2024-07-23 10:23:43 +08:00
package crontab
import (
"github.com/robfig/cron/v3"
)
var _ Crontab = (*crontab)(nil)
type Crontab interface {
i()
AddFunc(spec string, cmd func()) (entryID cron.EntryID, err error)
Entries() []cron.Entry
Stop()
}
type crontab struct {
cron *cron.Cron
}
func New() Crontab {
return &crontab{
cron: cron.New(),
}
}
func (c *crontab) i() {}
func (c *crontab) AddFunc(spec string, cmd func()) (entryID cron.EntryID, err error) {
entryID, err = c.cron.AddFunc(spec, cmd)
c.cron.Start()
return
}
func (c *crontab) Stop() {
c.cron.Stop()
}
func (c *crontab) Entries() []cron.Entry {
return c.cron.Entries()
}