Documentation ¶
Overview ¶
gtimer 包实现了定时/延迟任务的执行与管理。
本包旨在管理数百万级别的定时任务。gtimer 与 gcron 的区别在于: 1. gcron 包是基于 gtimer 包实现的。 2. gtimer 侧重于高性能,适用于处理百万级的定时任务。 3. gcron 支持类似 Linux crontab 的配置模式语法,更加便于人工阅读。 4. gtimer 的基准操作时间单位为纳秒,而 gcron 的基准操作时间单位为微秒。
另外,特别注意定时器常见的延迟问题:https://github.com/golang/go/issues/14410 md5:c0dc9837a603eb26
Index ¶
- Constants
- func X延时加入单例循环任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func X延时加入单次任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func X延时加入循环任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func X延时加入指定次数任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func X延时加入详细循环任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func X弃用_SetInterval(上下文 context.Context, interval time.Duration, job JobFunc)
- func X弃用_SetTimeout(上下文 context.Context, delay time.Duration, job JobFunc)
- func X退出()
- type JobFunc
- type X结构_Entry
- func X加入单例循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *X结构_Entry
- func X加入单次任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *X结构_Entry
- func X加入循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *X结构_Entry
- func X加入指定次数任务(上下文 context.Context, 间隔时长 time.Duration, 次数 int, ...) *X结构_Entry
- func X加入详细循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc, ...) *X结构_Entry
- func (entry *X结构_Entry) X关闭任务()
- func (entry *X结构_Entry) X取任务上下文() context.Context
- func (entry *X结构_Entry) X取任务函数() JobFunc
- func (entry *X结构_Entry) X取任务状态() int
- func (entry *X结构_Entry) X开始工作()
- func (entry *X结构_Entry) X异步运行()
- func (entry *X结构_Entry) X是否单例模式() bool
- func (entry *X结构_Entry) X暂停工作()
- func (entry *X结构_Entry) X设置任务次数(次数 int)
- func (entry *X结构_Entry) X设置任务状态(状态 int) int
- func (entry *X结构_Entry) X设置单例模式(单例模式 bool)
- func (entry *X结构_Entry) X重置任务()
- type X结构_定时
- func (t *X结构_定时) X关闭任务()
- func (t *X结构_定时) X加入单例循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *X结构_Entry
- func (t *X结构_定时) X加入单次任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *X结构_Entry
- func (t *X结构_定时) X加入循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *X结构_Entry
- func (t *X结构_定时) X加入指定次数任务(上下文 context.Context, 间隔时长 time.Duration, 次数 int, ...) *X结构_Entry
- func (t *X结构_定时) X加入详细循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc, ...) *X结构_Entry
- func (t *X结构_定时) X延时加入单例循环任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func (t *X结构_定时) X延时加入单次任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func (t *X结构_定时) X延时加入循环任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func (t *X结构_定时) X延时加入指定次数任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func (t *X结构_定时) X延时加入详细循环任务(上下文 context.Context, 延时加入 time.Duration, ...)
- func (t *X结构_定时) X开始工作()
- func (t *X结构_定时) X暂停工作()
- type X结构_选项
Constants ¶
const ( X常量_状态_已准备 = 0 // 作业或定时器已准备好运行。 md5:043261776a379433 X常量_状态_运行中 = 1 // 已经有任务或定时器在运行。 md5:148ed9b5d89215fe X常量_状态_已停止 = 2 // 任务或定时器已停止。 md5:3cc8479a2061f7db X常量_状态_已关闭 = -1 // 作业或计时器已关闭,正在等待被删除。 md5:9b775a18fd7fe5b9 )
Variables ¶
This section is empty.
Functions ¶
func X延时加入单例循环任务 ¶
X延时加入单例循环任务 在延迟`interval`时长后添加一个定时任务。 参阅 AddSingleton。 md5:80f70090fa17a370
func X延时加入指定次数任务 ¶
X延时加入指定次数任务 在延迟`interval`持续时间后,添加一个定时任务。 参见AddTimes。 md5:62463bf6c56709b2
func X延时加入详细循环任务 ¶
func X延时加入详细循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc, 是否单例模式 bool, 次数 int, 任务状态 int)
X延时加入详细循环任务 在 `interval` 时长后添加一个定时任务。 另请参阅 AddEntry。 md5:e6e85b15472aaf98
func X弃用_SetInterval ¶
X弃用_SetInterval 每隔 `delay` 的时间运行一次任务。 类似于 JavaScript 中的 X弃用_SetInterval。 md5:1a47e33b3567d415
func X弃用_SetTimeout ¶
X弃用_SetTimeout 在`delay`时间间隔后执行一次该任务。 它的作用类似于JavaScript中的同名函数。 md5:e0477460fecac4d8
Types ¶
type X结构_Entry ¶
type X结构_Entry struct {
// contains filtered or unexported fields
}
X结构_Entry是定时任务。 md5:50a66c0cedad73c2
func X加入详细循环任务 ¶
func X加入详细循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc, 是否单例模式 bool, 次数 int, 任务状态 int) *X结构_Entry
X加入详细循环任务 向默认计时器添加一个带有详细参数的定时任务。
参数 `interval` 指定任务的运行间隔。
参数 `singleton` 指定任务是否以单例模式运行。 当任务为单例模式时,同一任务只允许有一个实例在运行。
参数 `times` 限制了任务的运行次数,意味着如果任务运行次数超过 `times` 就会退出。
参数 `status` 指定任务首次添加到计时器时的状态。 md5:0f65b7fd26b5f483
func (*X结构_Entry) X关闭任务 ¶
func (entry *X结构_Entry) X关闭任务()
X关闭任务 方法关闭任务,随后该任务将从计时器中移除。 md5:f499b51290bff676
type X结构_定时 ¶
type X结构_定时 struct {
// contains filtered or unexported fields
}
X结构_定时 是计时器管理器,它使用ticks来计算时间间隔。 md5:eab16bf4737f12a8
func (*X结构_定时) X加入指定次数任务 ¶
func (t *X结构_定时) X加入指定次数任务(上下文 context.Context, 间隔时长 time.Duration, 次数 int, 任务函数 JobFunc) *X结构_Entry
X加入指定次数任务 是一个方便的函数,用于添加一个有限运行次数的任务。 md5:98b9f39d64b7906c
func (*X结构_定时) X加入详细循环任务 ¶
func (t *X结构_定时) X加入详细循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc, 是否单例模式 bool, 次数 int, 任务状态 int) *X结构_Entry
X加入详细循环任务 向计时器添加一个具有详细参数的定时任务。
参数 `interval` 指定任务的运行间隔。
参数 `singleton` 指定任务是否以单例模式运行。当任务为单例模式时,只允许运行一个相同的任务。
参数 `times` 指定任务的最大运行次数,即如果任务的运行次数超过 `times`,则退出。
参数 `status` 指定任务初次添加到计时器时的状态。 md5:22c21ed21d95479c
func (*X结构_定时) X延时加入单例循环任务 ¶
func (t *X结构_定时) X延时加入单例循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)
X延时加入单例循环任务 在延迟`delay`时间后添加一个定时任务。 另请参阅AddSingleton。 md5:4df66d0755ab0371
func (*X结构_定时) X延时加入单次任务 ¶
func (t *X结构_定时) X延时加入单次任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)
X延时加入单次任务 在延迟 `delay` 持续时间后添加一个定时任务。 参见 AddOnce。 md5:613532ca791628bf
func (*X结构_定时) X延时加入循环任务 ¶
func (t *X结构_定时) X延时加入循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)
X延时加入循环任务 在延迟`delay`持续时间后添加一个定时任务。 参阅 Add。 md5:5db03c917e923b89
func (*X结构_定时) X延时加入指定次数任务 ¶
func (t *X结构_定时) X延时加入指定次数任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 次数 int, 任务函数 JobFunc)
X延时加入指定次数任务 在`delay`持续时间后添加一个定时任务。 参阅 AddTimes。 md5:8a53452ea0989047