1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-22 15:00:54 +00:00

toolbox: fix the go routine asleep

This commit is contained in:
astaxie 2014-08-22 13:56:36 +08:00
parent bf429a3a20
commit 01e4084587

View File

@ -34,6 +34,7 @@ var (
AdminTaskList map[string]Tasker AdminTaskList map[string]Tasker
stop chan bool stop chan bool
changed chan bool changed chan bool
isstart bool
seconds = bounds{0, 59, nil} seconds = bounds{0, 59, nil}
minutes = bounds{0, 59, nil} minutes = bounds{0, 59, nil}
hours = bounds{0, 23, nil} hours = bounds{0, 23, nil}
@ -380,6 +381,7 @@ func dayMatches(s *Schedule, t time.Time) bool {
// start all tasks // start all tasks
func StartTask() { func StartTask() {
isstart = true
go run() go run()
} }
@ -422,20 +424,25 @@ func run() {
// start all tasks // start all tasks
func StopTask() { func StopTask() {
isstart = false
stop <- true stop <- true
} }
// add task with name // add task with name
func AddTask(taskname string, t Tasker) { func AddTask(taskname string, t Tasker) {
AdminTaskList[taskname] = t AdminTaskList[taskname] = t
if isstart {
changed <- true changed <- true
} }
}
// add task with name // add task with name
func DeleteTask(taskname string) { func DeleteTask(taskname string) {
delete(AdminTaskList, taskname) delete(AdminTaskList, taskname)
if isstart {
changed <- true changed <- true
} }
}
// sort map for tasker // sort map for tasker
type MapSorter struct { type MapSorter struct {