-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathevent_loop_test.go
More file actions
47 lines (43 loc) · 934 Bytes
/
Copy pathevent_loop_test.go
File metadata and controls
47 lines (43 loc) · 934 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package task
import (
"errors"
"testing"
"time"
)
type eventLoopTestTask struct {
Task
}
func (t *eventLoopTestTask) Run() error {
time.Sleep(200 * time.Millisecond)
return errors.New("test error")
}
func Test_EventLoop(t *testing.T) {
for i := 0; i < 10; i++ {
var job Job
root.AddTask(&job)
var tt eventLoopTestTask
tt.SetRetry(-1, 100*time.Millisecond)
tt.OnStart(func() {
t.Log("task started", "taskId", tt.GetTaskID())
})
tt.OnDispose(func() {
t.Log("task disposed", "taskId", tt.GetTaskID())
})
job.OnStart(func() {
t.Log("job started", "jobId", job.GetTaskID())
})
job.OnDispose(func() {
t.Log("job disposed", "jobId", job.GetTaskID())
})
job.AddTask(&tt)
}
time.Sleep(10 * time.Second)
root.RangeSubTask(func(tt ITask) bool {
if j, ok := tt.(IJob); ok {
j.Stop(ErrTaskComplete)
j.WaitStopped()
t.Log("job stopped", "jobId", j.GetTaskID())
}
return true
})
}