| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /*
- * @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
- }
- }
- }
|