event

package
v0.0.0-...-117c448 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 2, 2026 License: MIT Imports: 12 Imported by: 0

README

event 事件

Documentation

Overview

Package event 提供了一个事件管理器,用于处理异步事件 使用 channel 作为事件通道 优点: 简单, 性能好 缺点: 需要预估事件通道容量, 如果容量不够, 会导致事件丢失

Package event 提供了一个事件管理器,用于处理异步事件 使用 list.List 作为事件通道 优点: 不需要预估事件通道容量, 不会丢失事件 缺点: 性能不如 channel

ListMgr 约定: 待处理数据在链表 events 中 notifyChan 仅表示[当前有需要处理的工作], 与事件条数不必一一对应. worker 每次收到通知会持锁将队列排空后再回到 select, 因此 notify 在缓冲满时走 default 丢弃的是冗余唤醒, 不表示丢弃链表中的事件

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ChanManager

type ChanManager struct {
	// contains filtered or unexported fields
}

ChanManager 事件管理器

func NewChanManager

func NewChanManager(workerCount uint32, onFunction xcontrol.OnFunction, eventChanCapacity uint32) *ChanManager

NewChanManager 创建一个新的事件管理器

workerCount: 工作协程数量
handler: 事件处理函数
eventChanCapacity: 事件 chan 容量

func (*ChanManager) Event

func (*ChanManager) Send

func (p *ChanManager) Send(event any)

Send 发送事件到管理器

func (*ChanManager) Start

func (p *ChanManager) Start()

Start 启动事件管理器

func (*ChanManager) Stop

func (p *ChanManager) Stop()

Stop 停止事件管理器

type IEvent

type IEvent interface {
	Send(event any) // 发送事件到管理器
}

IEvent 事件接口

type ListMgr

type ListMgr struct {
	// contains filtered or unexported fields
}

ListMgr 事件管理器

func NewListMgr

func NewListMgr(workerCount uint32, onFunction xcontrol.OnFunction) *ListMgr

NewListMgr 创建一个新的事件管理器

workerCount: 工作协程数量
handler: 事件处理函数

func (*ListMgr) Send

func (p *ListMgr) Send(events ...any)

Send 将事件入队,并尽量发送一条处理通知。 事件本体在 events, 通知只提示 worker 检查队列,缓冲满时省略发送(冗余通知可丢)

func (*ListMgr) Start

func (p *ListMgr) Start()

Start 启动事件管理器

func (*ListMgr) Stop

func (p *ListMgr) Stop()

Stop 停止事件管理器

type Manager

type Manager ListMgr

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL