service/task.go

166 lines
4.1 KiB
Go
Raw Permalink Normal View History

package service
// type Task struct {
// spec string
// file string
// vm *gojs.Runtime
// lock sync.RWMutex
// mtime time.Time
// // policy string
// }
// var tasks []Task
// var tasksLock = sync.RWMutex{}
// var taskData = map[string]map[string]any{}
// var taskDataLock = sync.RWMutex{}
// var taskList = map[string]*list.List{}
// var taskListLock = sync.RWMutex{}
// func DataSet(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(3)
// scope := args.Str(0)
// key := args.Str(1)
// value := args.Any(2)
// taskDataLock.Lock()
// defer taskDataLock.Unlock()
// if taskData[scope] == nil {
// taskData[scope] = map[string]any{}
// }
// taskData[scope][key] = value
// return nil
// }
2024-10-18 17:54:37 +08:00
// func DataGet(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(2)
// scope := args.Str(0)
// key := args.Str(1)
// taskDataLock.RLock()
// defer taskDataLock.RUnlock()
// if taskData[scope] != nil {
// return vm.ToValue(taskData[scope][key])
// }
// return nil
// }
// func DataKeys(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// taskDataLock.RLock()
// defer taskDataLock.RUnlock()
// if taskData[scope] != nil {
// keys := make([]string, len(taskData[scope]))
// i := 0
// for key := range taskData[scope] {
// keys[i] = key
// i++
// }
// return vm.ToValue(keys)
// }
// return nil
// }
// func DataCount(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// taskDataLock.RLock()
// defer taskDataLock.RUnlock()
// if taskData[scope] != nil {
// return vm.ToValue(len(taskData[scope]))
// }
// return vm.ToValue(0)
// }
2024-10-18 17:54:37 +08:00
// func DataFetch(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// taskDataLock.RLock()
// defer taskDataLock.RUnlock()
// if taskData[scope] != nil {
// all := make(map[string]any)
// for k, v := range taskData[scope] {
// all[k] = v
// }
// return vm.ToValue(all)
// }
// return nil
// }
2024-10-18 17:54:37 +08:00
// func DataRemove(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// key := args.Str(1)
// taskDataLock.Lock()
// defer taskDataLock.Unlock()
// if taskData[scope] != nil {
// if key != "" {
// delete(taskData[scope], key)
// } else {
// delete(taskData, scope)
// }
// }
// return nil
// }
2024-10-18 17:54:37 +08:00
// func ListPush(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(2)
// scope := args.Str(0)
// value := args.Any(1)
// fromHead := args.Bool(2)
// taskListLock.Lock()
// defer taskListLock.Unlock()
// list1 := taskList[scope]
// if list1 == nil {
// list1 = list.New()
// taskList[scope] = list1
// }
// if fromHead {
// list1.PushFront(value)
// } else {
// list1.PushBack(value)
// }
// return nil
// }
2024-10-18 17:54:37 +08:00
// func ListPop(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// fromEnd := args.Bool(1)
// taskListLock.Lock()
// var item *list.Element
// defer taskListLock.Unlock()
// list1 := taskList[scope]
// if list1 != nil {
// if fromEnd {
// item = list1.Front()
// } else {
// item = list1.Back()
// }
// if item != nil {
// list1.Remove(item)
// return vm.ToValue(item.Value)
// }
// }
// return nil
// }
2024-10-18 17:54:37 +08:00
// func ListCount(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// taskListLock.RLock()
// defer taskListLock.RUnlock()
// if taskList[scope] != nil {
// return vm.ToValue(taskList[scope].Len())
// }
// return vm.ToValue(0)
// }
2024-10-18 17:54:37 +08:00
// func ListRemove(argsIn goja.FunctionCall, vm *goja.Runtime) goja.Value {
// args := gojs.MakeArgs(&argsIn, vm).Check(1)
// scope := args.Str(0)
// taskListLock.Lock()
// defer taskListLock.Unlock()
// delete(taskList, scope)
// return nil
// }