Help us shape the future of Go! Take the 2026 Go Developer Survey

execute

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2023 License: MIT Imports: 5 Imported by: 0

README

  • 触发式处理

这种处理模式应该是:

收到通知时触发处理函数执行 处理函数会完整执行完毕,不会被中断 处理完成后会重置内部状态 之后会等待下一次通知触发 若不再收到通知,也不会重复处理 综合来说,其关键特征是:

由通知触发处理 处理过程不可中断 处理后重置状态 等待下一次触发

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event uint32

Event定义了事件类型,Uint32可以支持多达40亿个事件

type EventTriggeredExecute

type EventTriggeredExecute[PARAMS any] struct {
	// contains filtered or unexported fields
}

EventTriggeredExecute 包含已注册的执行事件列表

func NewEventTriggeredExecute

func NewEventTriggeredExecute[PARAMS any]() *EventTriggeredExecute[PARAMS]

NewEventTriggeredExecute构造函数

func (*EventTriggeredExecute[PARAMS]) CoverExecute

func (be *EventTriggeredExecute[PARAMS]) CoverExecute(e Event, execDo func(params *PARAMS), recoverDo func(ierr any))

CoverExecute用来覆盖一个已注册的执行单元 通过事件号定位并替换为新函数

func (*EventTriggeredExecute[PARAMS]) Notify

func (be *EventTriggeredExecute[PARAMS]) Notify(e Event, params *PARAMS)

Notify用于通知触发执行 根据事件号查找执行单元并检查通知次数 达到指定次数则触发goroutine异步执行

func (*EventTriggeredExecute[PARAMS]) RegisterExecute

func (be *EventTriggeredExecute[PARAMS]) RegisterExecute(execDo func(params *PARAMS), recoverDo func(ierr any)) Event

RegisterExecute注册一个执行单元 返回分配的事件号

type ModeExecute

type ModeExecute int
const (
	ModeInterval   ModeExecute // 时间间隔执行
	ModeCompensate             // 时间补偿执行
	ModeConcurrent             // 定期并发
)

type PeriodicExecute

type PeriodicExecute[ITEM any] struct {
	// contains filtered or unexported fields
}

PeriodicExecute 周期性处理

func (*PeriodicExecute[ITEM]) AsyncExecute

func (pe *PeriodicExecute[ITEM]) AsyncExecute(m ModeExecute)

func (*PeriodicExecute[ITEM]) Collect

func (pe *PeriodicExecute[ITEM]) Collect(item *ITEM)

Jump to

Keyboard shortcuts

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