feat: task manage api

This commit is contained in:
Noah Hsu
2022-06-29 18:36:14 +08:00
parent c88680b495
commit 0bf724f447
7 changed files with 119 additions and 20 deletions

View File

@ -99,6 +99,14 @@ func (tm *Manager[K]) GetByStates(states ...string) []*Task[K] {
return tasks
}
func (tm *Manager[K]) ListUndone() []*Task[K] {
return tm.GetByStates(PENDING, RUNNING, CANCELING)
}
func (tm *Manager[K]) ListDone() []*Task[K] {
return tm.GetByStates(SUCCEEDED, CANCELED, ERRORED)
}
func NewTaskManager[K comparable](maxWorker int, updateID ...func(*K)) *Manager[K] {
tm := &Manager[K]{
tasks: generic_sync.MapOf[K, *Task[K]]{},