From 6342c4a3e5f232d2990d080c8aee0a191d4d5c5c Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Wed, 13 Aug 2014 14:38:52 +0300 Subject: [PATCH] save *asap action timings with empty account id list --- engine/action_timing.go | 3 +++ scheduler/scheduler.go | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/engine/action_timing.go b/engine/action_timing.go index 6bfcea7d5..c636b6d99 100644 --- a/engine/action_timing.go +++ b/engine/action_timing.go @@ -217,6 +217,9 @@ func (at *ActionTiming) getActions() (as []*Action, err error) { } func (at *ActionTiming) Execute() (err error) { + if len(at.AccountIds) == 0 { // nothing to do if no accounts set + return + } at.resetStartTimeCache() aac, err := at.getActions() if err != nil { diff --git a/scheduler/scheduler.go b/scheduler/scheduler.go index 0bdc9f924..b926e8bf3 100644 --- a/scheduler/scheduler.go +++ b/scheduler/scheduler.go @@ -90,8 +90,13 @@ func (s *Scheduler) LoadActionTimings(storage engine.AccountingStorage) { isAsap = at.IsASAP() toBeSaved = toBeSaved || isAsap if isAsap { - engine.Logger.Info(fmt.Sprintf("Time for one time action on %v", key)) - go at.Execute() + if len(at.AccountIds) > 0 { + engine.Logger.Info(fmt.Sprintf("Time for one time action on %v", key)) + } + go func() { + at.Execute() + at.AccountIds = make([]string, 0) + }() // do not append it to the newAts list to be saved } else { now := time.Now() @@ -100,8 +105,9 @@ func (s *Scheduler) LoadActionTimings(storage engine.AccountingStorage) { continue } s.queue = append(s.queue, at) - newAts = append(newAts, at) } + // save even asap action timings with empty account id list + newAts = append(newAts, at) } if toBeSaved { engine.AccLock.Guard(engine.ACTION_TIMING_PREFIX, func() (float64, error) {