update
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
package job
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"gitee.com/jhx1219/machine-go/utils/common/task"
|
||||
)
|
||||
|
||||
type JobConf struct {
|
||||
JobList []JobListConf `json:"job_list"`
|
||||
}
|
||||
|
||||
type JobListConf struct {
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
type JobInfo struct {
|
||||
Task *task.Task
|
||||
}
|
||||
|
||||
type Job struct {
|
||||
JobLogPath string
|
||||
JobMap map[string]*JobInfo
|
||||
}
|
||||
|
||||
func NewJob() *Job {
|
||||
|
||||
job := &Job{}
|
||||
job.JobLogPath = os.Getenv("JOB_LOG_PATH")
|
||||
job.JobMap = make(map[string]*JobInfo)
|
||||
|
||||
confPath := os.Getenv("CONF_PATH")
|
||||
|
||||
data, err := ioutil.ReadFile(confPath + "/job.json")
|
||||
if err != nil {
|
||||
log.Println("读取job文件失败: " + err.Error())
|
||||
return job
|
||||
}
|
||||
|
||||
// 解析 JSON 数据
|
||||
var jobConf JobConf
|
||||
err = json.Unmarshal(data, &jobConf)
|
||||
if err != nil {
|
||||
log.Println("解析job文件失败: " + err.Error())
|
||||
return job
|
||||
}
|
||||
|
||||
for _, conf := range jobConf.JobList {
|
||||
t := task.NewTask(job.JobLogPath + "/" + conf.Name)
|
||||
job.JobMap[conf.Name] = &JobInfo{
|
||||
Task: t,
|
||||
}
|
||||
}
|
||||
|
||||
return job
|
||||
}
|
||||
|
||||
func (j *Job) JobTaskServer() {
|
||||
for _, job := range j.JobMap {
|
||||
jobCopy := job
|
||||
jobCopy.Task.TaskServer()
|
||||
}
|
||||
}
|
||||
|
||||
func (j *Job) LogJobTask(msg string) {
|
||||
for _, job := range j.JobMap {
|
||||
job.Task.LogTask(msg)
|
||||
}
|
||||
}
|
||||
|
||||
func (j *Job) SetJobFunc(job string, f func(string, *task.Task)) {
|
||||
if _, ok := j.JobMap[job]; !ok {
|
||||
return
|
||||
}
|
||||
|
||||
j.JobMap[job].Task.TaskFunc = f
|
||||
}
|
||||
Reference in New Issue
Block a user