Documentation ¶
Index ¶
- Constants
- func UnixMilli() int64
- type DelayFunc
- type TimeWheel
- type Timer
- type TimerScheduler
- func (ts *TimerScheduler) CancelTimer(tID uint32)
- func (ts *TimerScheduler) CreateTimerAfter(df *DelayFunc, duration time.Duration) (uint32, error)
- func (ts *TimerScheduler) CreateTimerAt(df *DelayFunc, unixNano int64) (uint32, error)
- func (ts *TimerScheduler) GetTriggerChan() chan *DelayFunc
- func (ts *TimerScheduler) Start()
Constants ¶
View Source
const ( //HourName 小时 HourName = "HOUR" //HourInterval 小时间隔ms为精度 HourInterval = 60 * 60 * 1e3 //HourScales 12小时制 HourScales = 12 //MinuteName 分钟 MinuteName = "MINUTE" //MinuteInterval 每分钟时间间隔 MinuteInterval = 60 * 1e3 //MinuteScales 60分钟 MinuteScales = 60 //SecondName 秒 SecondName = "SECOND" //SecondInterval 秒的间隔 SecondInterval = 1e3 //SecondScales 60秒 SecondScales = 60 //TimersMaxCap //每个时间轮刻度挂载定时器的最大个数 TimersMaxCap = 2048 )
View Source
const ( //MaxChanBuff 默认缓冲触发函数队列大小 MaxChanBuff = 2048 //MaxTimeDelay 默认最大误差时间 MaxTimeDelay = 100 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type DelayFunc ¶
type DelayFunc struct {
// contains filtered or unexported fields
}
DelayFunc 延迟调用函数对象
func NewDelayFunc ¶
func NewDelayFunc(f func(v ...interface{}), args []interface{}) *DelayFunc
NewDelayFunc 创建一个延迟调用函数
type TimeWheel ¶
type TimeWheel struct { //互斥锁(继承RWMutex的 RWLock,UnLock 等方法) sync.RWMutex // contains filtered or unexported fields }
TimeWheel 时间轮
func NewTimeWheel ¶
NewTimeWheel 创建一个时间轮
func (*TimeWheel) AddTimeWheel ¶
AddTimeWheel 给一个时间轮添加下层时间轮 比如给小时时间轮添加分钟时间轮,给分钟时间轮添加秒时间轮
func (*TimeWheel) GetTimerWithIn ¶
GetTimerWithIn 获取定时器在一段时间间隔内的Timer
func (*TimeWheel) RemoveTimer ¶
RemoveTimer 删除一个定时器,根据定时器的ID
type Timer ¶
type Timer struct {
// contains filtered or unexported fields
}
Timer 定时器实现
func NewTimerAfter ¶
NewTimerAfter 创建一个定时器,在当前时间延迟duration之后触发 定时器方法
func NewTimerAt ¶
NewTimerAt 创建一个定时器,在指定的时间触发 定时器方法 df: DelayFunc类型的延迟调用函数类型;unixNano: unix计算机从1970-1-1至今经历的纳秒数
type TimerScheduler ¶
type TimerScheduler struct { //定时器编号累加器 IDGen uint32 //互斥锁 sync.RWMutex // contains filtered or unexported fields }
TimerScheduler 计时器调度器
func NewAutoExecTimerScheduler ¶
func NewAutoExecTimerScheduler() *TimerScheduler
NewAutoExecTimerScheduler 时间轮定时器 自动调度
func NewTimerScheduler ¶
func NewTimerScheduler() *TimerScheduler
NewTimerScheduler 返回一个定时器调度器 ,主要创建分层定时器,并做关联,并依次启动
func (*TimerScheduler) CancelTimer ¶
func (ts *TimerScheduler) CancelTimer(tID uint32)
CancelTimer 删除timer
func (*TimerScheduler) CreateTimerAfter ¶
CreateTimerAfter 创建一个延迟Timer 并将Timer添加到分层时间轮中, 返回Timer的tID
func (*TimerScheduler) CreateTimerAt ¶
func (ts *TimerScheduler) CreateTimerAt(df *DelayFunc, unixNano int64) (uint32, error)
CreateTimerAt 创建一个定点Timer 并将Timer添加到分层时间轮中, 返回Timer的tID
func (*TimerScheduler) GetTriggerChan ¶
func (ts *TimerScheduler) GetTriggerChan() chan *DelayFunc
GetTriggerChan 获取计时结束的延迟执行函数通道
Click to show internal directories.
Click to hide internal directories.