Documentation
¶
Index ¶
- Constants
- Variables
- func GetServiceByID(srvType uint8) fatchoy.Service
- func GetServiceByName(name string) fatchoy.Service
- func GetServiceNames() []string
- func Register(service fatchoy.Service)
- type Executor
- type HHWheelTimer
- func (t *HHWheelTimer) Cancel(id int) bool
- func (t *HHWheelTimer) Chan() <-chan Runnable
- func (t *HHWheelTimer) IsPending(id int) bool
- func (t *HHWheelTimer) RunAfter(timeUnits int, r Runnable) int
- func (t *HHWheelTimer) RunEvery(interval int, r Runnable) int
- func (t *HHWheelTimer) Shutdown()
- func (t *HHWheelTimer) Size() int
- func (t *HHWheelTimer) Start()
- type ImmediateExecutor
- type MessageHandlers
- type Runnable
- type Task
- type ThreadPoolExecutor
- type Timer
- type TimerQueue
- func (s *TimerQueue) Cancel(id int) bool
- func (s *TimerQueue) Chan() <-chan Runnable
- func (s *TimerQueue) IsPending(id int) bool
- func (s *TimerQueue) RunAfter(timeUnits int, r Runnable) int
- func (s *TimerQueue) RunEvery(interval int, r Runnable) int
- func (s *TimerQueue) Shutdown()
- func (s *TimerQueue) Size() int
- func (s *TimerQueue) Start()
- type WheelTimerBucket
- type WheelTimerNode
Constants ¶
View Source
const ( TVN_BITS = 6 // time vector level shift bits TVR_BITS = 8 // timer vector shift bits TVN_SIZE = 1 << TVN_BITS TVR_SIZE = 1 << TVR_BITS TVN_MASK = TVN_SIZE - 1 TVR_MASK = TVR_SIZE - 1 WHEEL_LEVEL = 4 )
View Source
const ( StateInit = 0 StateScheduled = 1 // task is scheduled for execution StateExecuted = 2 // a non-repeating task has already executed (or is currently executing) and has not been cancelled. StateCancelled = 3 // task has been cancelled (with a call to TimerTask.Cancel). )
View Source
const ( PendingQueueCapacity = 128 // pending add/delete TimeoutQueueCapacity = 1000 // pending timed-out )
Variables ¶
Functions ¶
func GetServiceByID ¶ added in v0.1.5
根据服务ID获取Service对象
func GetServiceByName ¶ added in v0.1.5
根据名称获取Service对象
Types ¶
type Executor ¶
func NewAsyncExecutor ¶ added in v0.1.20
func NewImmediateExecutor ¶ added in v0.1.16
func NewImmediateExecutor() Executor
func NewThreadPoolExecutor ¶ added in v0.1.16
type HHWheelTimer ¶ added in v0.1.20
type HHWheelTimer struct {
C chan Runnable // 到期的定时器
// contains filtered or unexported fields
}
Hashed and Hierarchical Timing Wheels
func (*HHWheelTimer) Cancel ¶ added in v0.1.20
func (t *HHWheelTimer) Cancel(id int) bool
func (*HHWheelTimer) Chan ¶ added in v0.1.20
func (t *HHWheelTimer) Chan() <-chan Runnable
func (*HHWheelTimer) IsPending ¶ added in v0.1.22
func (t *HHWheelTimer) IsPending(id int) bool
func (*HHWheelTimer) RunAfter ¶ added in v0.1.20
func (t *HHWheelTimer) RunAfter(timeUnits int, r Runnable) int
创建一个定时器,在`timeUnits`时间后运行`r`
func (*HHWheelTimer) RunEvery ¶ added in v0.1.20
func (t *HHWheelTimer) RunEvery(interval int, r Runnable) int
创建一个定时器,每隔`interval`时间运行一次`r`
func (*HHWheelTimer) Shutdown ¶ added in v0.1.20
func (t *HHWheelTimer) Shutdown()
func (*HHWheelTimer) Size ¶ added in v0.1.20
func (t *HHWheelTimer) Size() int
func (*HHWheelTimer) Start ¶ added in v0.1.21
func (t *HHWheelTimer) Start()
type ImmediateExecutor ¶ added in v0.1.16
type ImmediateExecutor struct {
}
func (*ImmediateExecutor) Execute ¶ added in v0.1.16
func (e *ImmediateExecutor) Execute(r Runnable) error
func (*ImmediateExecutor) Instance ¶ added in v0.1.16
func (e *ImmediateExecutor) Instance() Executor
func (*ImmediateExecutor) Shutdown ¶ added in v0.1.22
func (e *ImmediateExecutor) Shutdown()
func (*ImmediateExecutor) Start ¶ added in v0.1.22
func (e *ImmediateExecutor) Start()
type MessageHandlers ¶ added in v0.1.5
type MessageHandlers struct {
// contains filtered or unexported fields
}
消息派发
func MessageDispatcher ¶ added in v0.1.9
func MessageDispatcher() MessageHandlers
func NewMsgHandlers ¶ added in v0.1.5
func NewMsgHandlers() MessageHandlers
func (*MessageHandlers) DeregisterAll ¶ added in v0.1.5
func (d *MessageHandlers) DeregisterAll(msgId int32)
取消所有
func (*MessageHandlers) DeregisterOne ¶ added in v0.1.5
func (d *MessageHandlers) DeregisterOne(msgId int32, handler fatchoy.PacketHandler)
取消单个注册
func (*MessageHandlers) Dispatch ¶ added in v0.1.5
func (d *MessageHandlers) Dispatch(pkt fatchoy.IPacket) error
func (*MessageHandlers) Register ¶ added in v0.1.5
func (d *MessageHandlers) Register(msgId int32, handler fatchoy.PacketHandler)
注册一个
type ThreadPoolExecutor ¶ added in v0.1.16
type ThreadPoolExecutor struct {
// contains filtered or unexported fields
}
func (*ThreadPoolExecutor) Execute ¶ added in v0.1.16
func (e *ThreadPoolExecutor) Execute(r Runnable) error
func (*ThreadPoolExecutor) Shutdown ¶ added in v0.1.20
func (e *ThreadPoolExecutor) Shutdown()
func (*ThreadPoolExecutor) Start ¶ added in v0.1.22
func (e *ThreadPoolExecutor) Start()
type Timer ¶ added in v0.1.15
type Timer interface {
Start()
// 关闭定时器
Shutdown()
// 在`timeUnits`时间后执行`r`
RunAfter(timeUnits int, r Runnable) int
// 每隔`interval`时间执行`r`
RunEvery(interval int, r Runnable) int
// 取消一个timer
Cancel(id int) bool
// 判断timer是否在计划中
IsPending(id int) bool
// 超时的待执行runner
Chan() <-chan Runnable
// timer数量
Size() int
}
定时器
func NewDefaultHHWheelTimer ¶ added in v0.1.21
func NewDefaultHHWheelTimer() Timer
func NewDefaultTimerQueue ¶ added in v0.1.21
func NewDefaultTimerQueue() Timer
func NewHHWheelTimer ¶ added in v0.1.20
func NewTimerQueue ¶ added in v0.1.16
type TimerQueue ¶ added in v0.1.16
type TimerQueue struct {
C chan Runnable // 到期的定时器
// contains filtered or unexported fields
}
最小堆实现的定时器 标准库的四叉堆实现的time.Timer已经可以满足大多数高精度的定时需求 这个实现主要是为了在大量timer的场景,把timer的压力从runtime放到应用上
func (*TimerQueue) Chan ¶ added in v0.1.20
func (s *TimerQueue) Chan() <-chan Runnable
func (*TimerQueue) IsPending ¶ added in v0.1.21
func (s *TimerQueue) IsPending(id int) bool
func (*TimerQueue) RunAfter ¶ added in v0.1.16
func (s *TimerQueue) RunAfter(timeUnits int, r Runnable) int
创建一个定时器,在`timeUnits`时间后运行`r`
func (*TimerQueue) RunEvery ¶ added in v0.1.16
func (s *TimerQueue) RunEvery(interval int, r Runnable) int
创建一个定时器,每隔`interval`时间运行一次`r`
func (*TimerQueue) Shutdown ¶ added in v0.1.16
func (s *TimerQueue) Shutdown()
func (*TimerQueue) Size ¶ added in v0.1.16
func (s *TimerQueue) Size() int
func (*TimerQueue) Start ¶ added in v0.1.21
func (s *TimerQueue) Start()
Starts the background thread explicitly
type WheelTimerBucket ¶ added in v0.1.20
type WheelTimerBucket struct {
// contains filtered or unexported fields
}
type WheelTimerNode ¶ added in v0.1.20
type WheelTimerNode struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.