1234567891011121314151617181920212223242526272829303132333435363738 |
- package internal
- import (
- "encoding/json"
- "github.com/gogf/gf/container/gmap"
- "github.com/gogf/gf/encoding/gjson"
- "sparrow/pkg/rule"
- "sparrow/pkg/server"
- )
- // TaskSchedule task schedule 任务调度
- type TaskSchedule struct {
- tasks *gmap.HashMap // 保存任务名称与任务实体的映射
- }
- func NewTaskSchedule() *TaskSchedule {
- return &TaskSchedule{
- tasks: gmap.NewHashMap(true),
- }
- }
- func (t *TaskSchedule) DoTask(msg []byte) error {
- var task rule.TimerTaskMessage
- err := json.Unmarshal([]byte(msg), &task)
- if err != nil {
- return err
- }
- newJson := gjson.New(task.Actions)
- server.Log.Debugf("do task:actions:%s", newJson.MustToJsonString())
- // 创建任务
- err = NewTaskExecutor(task.Actions).Do()
- if err != nil {
- return err
- }
- return nil
- }
|