From 6235bd1fe9ed15c9a889f72e4fe2880189963306 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 18 Aug 2015 04:03:11 +0800 Subject: work on #986 and fix a LDAP crash --- modules/cron/cron.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'modules/cron') diff --git a/modules/cron/cron.go b/modules/cron/cron.go index dbf0174b..3491afac 100644 --- a/modules/cron/cron.go +++ b/modules/cron/cron.go @@ -91,34 +91,33 @@ type FuncJob func() func (f FuncJob) Run() { f() } // AddFunc adds a func to the Cron to be run on the given schedule. -func (c *Cron) AddFunc(desc, spec string, cmd func()) error { +func (c *Cron) AddFunc(desc, spec string, cmd func()) (*Entry, error) { return c.AddJob(desc, spec, FuncJob(cmd)) } // AddFunc adds a Job to the Cron to be run on the given schedule. -func (c *Cron) AddJob(desc, spec string, cmd Job) error { +func (c *Cron) AddJob(desc, spec string, cmd Job) (*Entry, error) { schedule, err := Parse(spec) if err != nil { - return err + return nil, err } - c.Schedule(desc, spec, schedule, cmd) - return nil + return c.Schedule(desc, spec, schedule, cmd), nil } // Schedule adds a Job to the Cron to be run on the given schedule. -func (c *Cron) Schedule(desc, spec string, schedule Schedule, cmd Job) { +func (c *Cron) Schedule(desc, spec string, schedule Schedule, cmd Job) *Entry { entry := &Entry{ Description: desc, Spec: spec, Schedule: schedule, Job: cmd, } - if !c.running { + if c.running { + c.add <- entry + } else { c.entries = append(c.entries, entry) - return } - - c.add <- entry + return entry } // Entries returns a snapshot of the cron entries. -- cgit v1.2.3