MCPcopy
hub / github.com/aceld/zinx / TestNewTimerScheduler

Function TestNewTimerScheduler

ztimer/timerscheduler_test.go:26–50  ·  view source on GitHub ↗

手动创建调度器运转时间轮

(t *testing.T)

Source from the content-addressed store, hash-verified

24
25// 手动创建调度器运转时间轮
26func TestNewTimerScheduler(t *testing.T) {
27 timerScheduler := NewTimerScheduler()
28 timerScheduler.Start()
29
30 //在scheduler中添加timer
31 for i := 1; i < 2000; i++ {
32 f := NewDelayFunc(foo, []interface{}{i, i * 3})
33 tID, err := timerScheduler.CreateTimerAfter(f, time.Duration(3*i)*time.Millisecond)
34 if err != nil {
35 zlog.Error("create timer error", tID, err)
36 break
37 }
38 }
39
40 //执行调度器触发函数
41 go func() {
42 delayFuncChan := timerScheduler.GetTriggerChan()
43 for df := range delayFuncChan {
44 df.Call()
45 }
46 }()
47
48 //阻塞等待
49 select {}
50}
51
52// 采用自动调度器运转时间轮
53func TestNewAutoExecTimerScheduler(t *testing.T) {

Callers

nothing calls this directly

Calls 7

StartMethod · 0.95
CreateTimerAfterMethod · 0.95
GetTriggerChanMethod · 0.95
ErrorFunction · 0.92
NewTimerSchedulerFunction · 0.85
NewDelayFuncFunction · 0.85
CallMethod · 0.65

Tested by

no test coverage detected