Feat: add get all tasks function (#4999)
* feat: add get all tasks function
This commit is contained in:
parent
50c4c849da
commit
2c506f7c2b
@ -1,6 +1,7 @@
|
||||
# developing
|
||||
- [Fix 4984: random expire cache](https://github.com/beego/beego/pull/4984)
|
||||
- [Fix 4907: make admin serve HTTP only](https://github.com/beego/beego/pull/5005)
|
||||
- [Feat 4999: add get all tasks function](https://github.com/beego/beego/pull/4999)
|
||||
|
||||
|
||||
# v2.0.4
|
||||
|
||||
1
go.sum
1
go.sum
@ -567,6 +567,7 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo=
|
||||
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
|
||||
23
task/task.go
23
task/task.go
@ -465,11 +465,16 @@ func DeleteTask(taskName string) {
|
||||
globalTaskManager.DeleteTask(taskName)
|
||||
}
|
||||
|
||||
// ClearTask clear all tasks
|
||||
// ClearTask clear all tasks
|
||||
func ClearTask() {
|
||||
globalTaskManager.ClearTask()
|
||||
}
|
||||
|
||||
// GetAllTasks get all tasks
|
||||
func GetAllTasks() []Tasker {
|
||||
return globalTaskManager.GetAllTasks()
|
||||
}
|
||||
|
||||
// GracefulShutdown wait all task done
|
||||
func GracefulShutdown() <-chan struct{} {
|
||||
return globalTaskManager.GracefulShutdown()
|
||||
@ -635,7 +640,7 @@ func (m *taskManager) DeleteTask(taskname string) {
|
||||
}
|
||||
}
|
||||
|
||||
// ClearTask clear all tasks
|
||||
// ClearTask clear all tasks
|
||||
func (m *taskManager) ClearTask() {
|
||||
isChanged := false
|
||||
|
||||
@ -653,6 +658,20 @@ func (m *taskManager) ClearTask() {
|
||||
}
|
||||
}
|
||||
|
||||
// GetAllTasks get all tasks
|
||||
func (m *taskManager) GetAllTasks() []Tasker {
|
||||
m.taskLock.RLock()
|
||||
|
||||
l := make([]Tasker, 0, len(m.adminTaskList))
|
||||
|
||||
for _, t := range m.adminTaskList {
|
||||
l = append(l, t)
|
||||
}
|
||||
m.taskLock.RUnlock()
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
// MapSorter sort map for tasker
|
||||
type MapSorter struct {
|
||||
Keys []string
|
||||
|
||||
@ -206,3 +206,24 @@ func wait(wg *sync.WaitGroup) chan bool {
|
||||
}()
|
||||
return ch
|
||||
}
|
||||
|
||||
func TestGetAllTasks(t *testing.T) {
|
||||
m := newTaskManager()
|
||||
defer m.ClearTask()
|
||||
|
||||
tk := NewTask("task1", "0/30 * * * * *", func(ctx context.Context) error {
|
||||
return nil
|
||||
})
|
||||
|
||||
tk2 := NewTask("task2", "0/40 * * * * *", func(ctx context.Context) error {
|
||||
return nil
|
||||
})
|
||||
|
||||
m.AddTask("task1", tk)
|
||||
m.AddTask("task2", tk2)
|
||||
|
||||
tasks := m.GetAllTasks()
|
||||
total := len(tasks)
|
||||
|
||||
assert.Equal(t, 2, total)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user