MCPcopy Index your code
hub / github.com/aceld/zinx / NewTimeWheel

Function NewTimeWheel

ztimer/timewheel.go:51–71  ·  view source on GitHub ↗

NewTimeWheel 创建一个时间轮

(name string, interval int64, scales int, maxCap int)

Source from the content-addressed store, hash-verified

49
50// NewTimeWheel 创建一个时间轮
51func NewTimeWheel(name string, interval int64, scales int, maxCap int) *TimeWheel {
52 // name:时间轮的名称
53 // interval:每个刻度之间的duration时间间隔
54 // scales:当前时间轮的轮盘一共多少个刻度(如我们正常的时钟就是12个刻度)
55 // maxCap: 每个刻度所最大保存的Timer定时器个数
56
57 tw := &TimeWheel{
58 name: name,
59 interval: interval,
60 scales: scales,
61 maxCap: maxCap,
62 timerQueue: make(map[int]map[uint32]*Timer, scales),
63 }
64 //初始化map
65 for i := 0; i < scales; i++ {
66 tw.timerQueue[i] = make(map[uint32]*Timer, maxCap)
67 }
68
69 zlog.Ins().InfoF("Init timerWhell name = %s is Done!", tw.name)
70 return tw
71}
72
73/*
74将一个timer定时器加入到分层时间轮中

Callers 2

TestTimerWheelFunction · 0.85
NewTimerSchedulerFunction · 0.85

Calls 2

InsFunction · 0.92
InfoFMethod · 0.65

Tested by 1

TestTimerWheelFunction · 0.68