crontab.go 628 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package crontab
  2. import (
  3. "github.com/robfig/cron/v3"
  4. )
  5. var _ Crontab = (*crontab)(nil)
  6. type Crontab interface {
  7. i()
  8. AddFunc(spec string, cmd func()) (entryID cron.EntryID, err error)
  9. Entries() []cron.Entry
  10. Stop()
  11. }
  12. type crontab struct {
  13. cron *cron.Cron
  14. }
  15. func New() Crontab {
  16. return &crontab{
  17. cron: cron.New(),
  18. }
  19. }
  20. func (c *crontab) i() {}
  21. func (c *crontab) AddFunc(spec string, cmd func()) (entryID cron.EntryID, err error) {
  22. entryID, err = c.cron.AddFunc(spec, cmd)
  23. c.cron.Start()
  24. return
  25. }
  26. func (c *crontab) Stop() {
  27. c.cron.Stop()
  28. }
  29. func (c *crontab) Entries() []cron.Entry {
  30. return c.cron.Entries()
  31. }