diff --git a/business/jxutils/tasksch/task_man.go b/business/jxutils/tasksch/task_man.go index fa3d7e42a..37def71b1 100644 --- a/business/jxutils/tasksch/task_man.go +++ b/business/jxutils/tasksch/task_man.go @@ -2,6 +2,7 @@ package tasksch import ( "sort" + "sync" "time" ) @@ -12,6 +13,7 @@ var ( type TaskMan struct { taskList map[string]ITask + locker sync.RWMutex } func init() { @@ -19,6 +21,8 @@ func init() { } func (m *TaskMan) GetTasks(taskID string, fromStatus, toStatus int, lastHours int) (taskList TaskList) { + m.locker.RLock() + defer m.locker.RUnlock() if lastHours == 0 { lastHours = defLastHours } @@ -34,6 +38,8 @@ func (m *TaskMan) GetTasks(taskID string, fromStatus, toStatus int, lastHours in } func (m *TaskMan) ManageTask(task ITask) ITask { + m.locker.Lock() + defer m.locker.Unlock() m.taskList[task.GetID()] = task return task }