Feat: add get all tasks function (#4999)
* feat: add get all tasks function
This commit is contained in:
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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user