Files
gfast/app/system/service/time_task.go
T
2021-07-20 11:11:30 +08:00

59 lines
1.0 KiB
Go

/*
* @desc:定时任务栈
* @company:云南省奇讯科技有限公司
* @Author: yixiaohu
* @Date: 2021/7/16 17:10
*/
package service
import "github.com/gogf/gf/os/gmutex"
var TimeTaskList = &taskList{
mu: gmutex.New(),
}
type TimeTask struct {
FuncName string
Param []string
Run func()
}
type taskList struct {
taskList []*TimeTask
mu *gmutex.Mutex
}
// AddTask 添加任务
func (s *taskList) AddTask(task *TimeTask) *taskList {
if task.FuncName == "" || task.Run == nil {
return s
}
s.taskList = append(s.taskList, task)
return s
}
// GetByName 通过方法名获取对应task信息
func (s *taskList) GetByName(funcName string) *TimeTask {
var result *TimeTask
for _, item := range s.taskList {
if item.FuncName == funcName {
result = item
break
}
}
return result
}
// EditParams 修改参数
func (s *taskList) EditParams(funcName string, params []string) {
s.mu.Lock()
defer s.mu.Unlock()
for _, item := range s.taskList {
if item.FuncName == funcName {
item.Param = params
break
}
}
}