- refactor tasksch
- sequence task added. - task tree added.
This commit is contained in:
52
business/jxutils/tasksch/sequence_task_test.go
Normal file
52
business/jxutils/tasksch/sequence_task_test.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package tasksch
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
)
|
||||
|
||||
func TestRunSeqTask(t *testing.T) {
|
||||
var seqTask ITask
|
||||
seqTask = NewSeqTask("TestSeqTask", "autotest", func(step int, params ...interface{}) (result interface{}, err error) {
|
||||
switch step {
|
||||
case 0:
|
||||
fmt.Println("ONE")
|
||||
task2 := NewParallelTask("hello", "xjh", nil, func(batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
i := batchItemList[0].(int)
|
||||
time.Sleep(2 * time.Second)
|
||||
fmt.Println(i * 2)
|
||||
return nil, nil
|
||||
}, []int{1, 2, 3})
|
||||
seqTask.AddChild(task2)
|
||||
time.Sleep(time.Duration(rand.Intn(3)) * time.Second)
|
||||
task2.Run()
|
||||
case 1:
|
||||
fmt.Println("TWO")
|
||||
time.Sleep(time.Duration(rand.Intn(3)) * time.Second)
|
||||
case 2:
|
||||
fmt.Println("THREE")
|
||||
time.Sleep(time.Duration(rand.Intn(3)) * time.Second)
|
||||
case 3:
|
||||
fmt.Println("FOUR")
|
||||
time.Sleep(time.Duration(rand.Intn(3)) * time.Second)
|
||||
case 4:
|
||||
fmt.Println("FIVE")
|
||||
time.Sleep(time.Duration(rand.Intn(3)) * time.Second)
|
||||
}
|
||||
return []string{"1"}, nil
|
||||
}, 5)
|
||||
|
||||
seqTask.Run()
|
||||
time.Sleep(3 * time.Second)
|
||||
seqTask.Cancel()
|
||||
fmt.Println(utils.Format4Output(seqTask, false))
|
||||
result, err := seqTask.GetResult(0)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(result)
|
||||
}
|
||||
Reference in New Issue
Block a user