mirror of
https://github.com/tiger1103/gfast.git
synced 2026-10-02 13:35:05 +00:00
59 lines
1.0 KiB
Go
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
|
|
}
|
|
}
|
|
}
|