Skip to content

Commit 98af0f8

Browse files
committed
#### Version 0.8.5
* New feature: add support auto register queue task from config * 2019-06-14 15:00
1 parent 2ec561e commit 98af0f8

4 files changed

Lines changed: 19 additions & 12 deletions

File tree

config.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package task
33
import (
44
"encoding/json"
55
"encoding/xml"
6+
"gopkg.in/yaml.v2"
67
"io/ioutil"
78
"os"
89
"path/filepath"
9-
"gopkg.in/yaml.v2"
1010
)
1111

1212
type (
@@ -25,6 +25,7 @@ type (
2525
DueTime int64 `xml:"duetime,attr" yaml:"duetime"` //开始任务的延迟时间(以毫秒为单位),如果<=0则不延迟
2626
Interval int64 `xml:"interval,attr" yaml:"interval"`
2727
Express string `xml:"express,attr" yaml:"express"`
28+
QueueSize int64 `xml:"queuesize,attr" yaml:"queuesize"`
2829
HandlerName string `xml:"handlername,attr" yaml:"handlername"`
2930
HandlerData string `xml:"handlerdata,attr" yaml:"handlerdata"`
3031
} `xml:"tasks>task" yaml:"tasks"`

example/loadfromconfig/main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,15 @@ func main() {
3232
RegisterTask(service)
3333

3434
//step 3: load config file
35-
service.LoadConfig("d:/gotmp/task/task.conf")
35+
service.LoadConfig("d:/gotmp/dottask/task.conf")
3636

3737
fmt.Println(time.Now().String(), " => Begin Task")
3838
//step 4: start all task
3939
service.StartAllTask()
4040

4141
fmt.Println(service.PrintAllCronTask())
4242

43-
for true {
43+
for {
44+
time.Sleep(time.Hour)
4445
}
4546
}

tasks.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ const (
1717
)
1818

1919
const (
20-
TaskType_Loop = "loop"
21-
TaskType_Cron = "cron"
20+
TaskType_Loop = "loop"
21+
TaskType_Cron = "cron"
2222
TaskType_Queue = "queue"
2323
)
2424

@@ -40,8 +40,6 @@ type (
4040
Reset(conf *TaskConfig) error
4141
}
4242

43-
44-
4543
ExceptionHandleFunc func(*TaskContext, error)
4644

4745
//task 容器
@@ -127,6 +125,13 @@ func (service *TaskService) LoadConfig(configFile string, confType ...interface{
127125
} else {
128126
service.Logger().Debug("CreateLoopTask success [" + fmt.Sprint(v) + "]")
129127
}
128+
} else if v.TaskType == TaskType_Queue && v.Interval > 0 {
129+
_, err := service.CreateQueueTask(v.TaskID, v.IsRun, v.Interval, handler, v, v.QueueSize)
130+
if err != nil {
131+
service.Logger().Warn("CreateQueueTask failed [" + err.Error() + "] [" + fmt.Sprint(v) + "]")
132+
} else {
133+
service.Logger().Debug("CreateQueueTask success [" + fmt.Sprint(v) + "]")
134+
}
130135
} else {
131136
service.Logger().Warn("CreateTask failed not match config [" + fmt.Sprint(v) + "]")
132137
}
@@ -226,7 +231,7 @@ func (service *TaskService) CreateLoopTask(taskID string, isRun bool, dueTime in
226231
}
227232

228233
// CreateQueueTask create new queuetask
229-
func (service *TaskService) CreateQueueTask(taskID string, isRun bool, interval int64, handler TaskHandle, taskData interface{}, queueSize int) (Task, error){
234+
func (service *TaskService) CreateQueueTask(taskID string, isRun bool, interval int64, handler TaskHandle, taskData interface{}, queueSize int64) (Task, error) {
230235
context := new(TaskContext)
231236
context.TaskID = taskID
232237
context.TaskData = taskData
@@ -246,8 +251,6 @@ func (service *TaskService) CreateQueueTask(taskID string, isRun bool, interval
246251
return task, nil
247252
}
248253

249-
250-
251254
// GetTask get TaskInfo by TaskID
252255
func (service *TaskService) GetTask(taskID string) (t Task, exists bool) {
253256
service.taskMutex.RLock()
@@ -288,13 +291,11 @@ func (service *TaskService) PrintAllCronTask() string {
288291
return body
289292
}
290293

291-
292294
// GetAllTasks get all tasks
293295
func (service *TaskService) GetAllTasks() map[string]Task {
294296
return service.taskMap
295297
}
296298

297-
298299
// RemoveAllTask remove all task
299300
func (service *TaskService) RemoveAllTask() {
300301
service.StopAllTask()

version.MD

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## devfeel/task
22

3+
#### Version 0.8.5
4+
* New feature: add support auto register queue task from config
5+
* 2019-06-14 15:00
6+
37
#### Version 0.8.4
48
* Bug Fixed: Auto restart task when task's app code panic error, if no auto restart, the goroutine will be stop
59
* 2018-09-20 22:00

0 commit comments

Comments
 (0)