From 710c7c79d4cc613965dc5c3b5f3860959caaa6b1 Mon Sep 17 00:00:00 2001 From: albertma Date: Tue, 26 Apr 2016 18:11:49 +0800 Subject: [PATCH] 1.fix start task twice issue --- toolbox/task.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/toolbox/task.go b/toolbox/task.go index 537de428..f9492f8f 100644 --- a/toolbox/task.go +++ b/toolbox/task.go @@ -389,11 +389,16 @@ func dayMatches(s *Schedule, t time.Time) bool { // StartTask start all tasks func StartTask() { + if isstart { + //If already started, no need to start another goroutine. + return + } isstart = true go run() } func run() { + now := time.Now().Local() for _, t := range AdminTaskList { t.SetNext(now) @@ -417,7 +422,7 @@ func run() { if e.GetNext() != effective { break } - go e.Run() + go e.Run() e.SetPrev(e.GetNext()) e.SetNext(effective) } @@ -432,8 +437,11 @@ func run() { // StopTask stop all tasks func StopTask() { - isstart = false - stop <- true + if(isstart){ + isstart = false + stop <- true + } + } // AddTask add task with name