定时类

package
v0.0.0-...-7e18bce Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2024 License: MIT Imports: 10 Imported by: 0

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

View Source
const (
	StatusReady   = 0  // 作业或定时器已准备好运行。 md5:043261776a379433
	StatusRunning = 1  // 已经有任务或定时器在运行。 md5:148ed9b5d89215fe
	StatusStopped = 2  // 任务或定时器已停止。 md5:3cc8479a2061f7db
	StatusClosed  = -1 // 作业或计时器已关闭,正在等待被删除。 md5:9b775a18fd7fe5b9

)

Variables

This section is empty.

Functions

func SetInterval别名

func SetInterval别名(ctx context.Context, interval time.Duration, job JobFunc)

SetInterval别名 每隔 `delay` 的时间运行一次任务。 类似于 JavaScript 中的 SetInterval别名。 md5:1a47e33b3567d415

func SetTimeout别名

func SetTimeout别名(ctx context.Context, delay time.Duration, job JobFunc)

SetTimeout别名 在`delay`时间间隔后执行一次该任务。 它的作用类似于JavaScript中的同名函数。 md5:e0477460fecac4d8

func X延时加入单例循环任务

func X延时加入单例循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)

X延时加入单例循环任务 在延迟`interval`时长后添加一个定时任务。 参阅 AddSingleton。 md5:80f70090fa17a370

func X延时加入单次任务

func X延时加入单次任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)

X延时加入单次任务 在延迟 `interval` 持续时间后添加一个定时任务。 参见 AddOnce。 md5:71c388c8096e5e48

func X延时加入循环任务

func X延时加入循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)

X延时加入循环任务 在延迟`interval`持续时间后,添加一个定时任务。 参见Add。 md5:e1bb93aeff16693d

func X延时加入指定次数任务

func X延时加入指定次数任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 次数 int, 任务函数 JobFunc)

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退出

func X退出()

X退出 在内部用于定时任务,它会退出并从计时器中标记为已关闭。后续定时任务会自动从计时器中移除。它内部使用了“panic-recover”机制来实现这个功能,这种设计旨在简化和方便操作。 md5:f86628e24baaeeef

Types

type Entry

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

Entry是定时任务。 md5:50a66c0cedad73c2

func X加入单例循环任务

func X加入单例循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *Entry

X加入单例循环任务 是一个方便的函数,用于添加单例模式任务。 md5:8530c92e0f700eff

func X加入单次任务

func X加入单次任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *Entry

X加入单次任务 是一个方便函数,用于添加一个只运行一次然后退出的工作。 md5:7674bfdda1236b76

func X加入循环任务

func X加入循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *Entry

X加入循环任务 将一个计时任务添加到默认计时器中,该计时器以`interval`的间隔运行。 md5:222cab00f4afd790

func X加入指定次数任务

func X加入指定次数任务(上下文 context.Context, 间隔时长 time.Duration, 次数 int, 任务函数 JobFunc) *Entry

X加入指定次数任务 是一个方便的函数,用于添加一个有限运行次数的任务。 md5:98b9f39d64b7906c

func X加入详细循环任务

func X加入详细循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc, 是否单例模式 bool, 次数 int, 任务状态 int) *Entry

X加入详细循环任务 向默认计时器添加一个带有详细参数的定时任务。

参数 `interval` 指定任务的运行间隔。

参数 `singleton` 指定任务是否以单例模式运行。 当任务为单例模式时,同一任务只允许有一个实例在运行。

参数 `times` 限制了任务的运行次数,意味着如果任务运行次数超过 `times` 就会退出。

参数 `status` 指定任务首次添加到计时器时的状态。 md5:0f65b7fd26b5f483

func (*Entry) X关闭任务

func (entry *Entry) X关闭任务()

X关闭任务 方法关闭任务,随后该任务将从计时器中移除。 md5:f499b51290bff676

func (*Entry) X取任务上下文

func (entry *Entry) X取任务上下文() context.Context

X取任务上下文 返回此任务的初始化上下文。 md5:c2a3cb7932f8bf8a

func (*Entry) X取任务函数

func (entry *Entry) X取任务函数() JobFunc

X取任务函数 返回此任务的工作函数。 md5:38a44e496baf9d51

func (*Entry) X取任务状态

func (entry *Entry) X取任务状态() int

X取任务状态 返回作业的状态。 md5:2147922a20ade271

func (*Entry) X开始工作

func (entry *Entry) X开始工作()

X开始工作 starts the job.

func (*Entry) X异步运行

func (entry *Entry) X异步运行()

X异步运行 异步运行计时器任务。 md5:11fb4e6232736ab7

func (*Entry) X是否单例模式

func (entry *Entry) X是否单例模式() bool

X是否单例模式 检查并返回当前任务是否处于单例模式。 md5:a380e519564eb9da

func (*Entry) X暂停工作

func (entry *Entry) X暂停工作()

X暂停工作 stops the job.

func (*Entry) X设置任务次数

func (entry *Entry) X设置任务次数(次数 int)

X设置任务次数 设置作业的运行次数限制。 md5:812717e2b2bcce7c

func (*Entry) X设置任务状态

func (entry *Entry) X设置任务状态(状态 int) int

X设置任务状态 自定义设置作业的状态。 md5:c143d90d99990f2c

func (*Entry) X设置单例模式

func (entry *Entry) X设置单例模式(单例模式 bool)

X设置单例模式 设置单例模式。 md5:3fd379a01f57d11e

func (*Entry) X重置任务

func (entry *Entry) X重置任务()

X重置任务 重置作业,这将为下次运行重置其计数器。 md5:5a5ab5e4b73a76fe

type JobFunc

type JobFunc = func(ctx context.Context)

JobFunc 是定时器中调用的定时任务函数。 md5:8958cfb2ccc06eff

type Timer

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

Timer 是计时器管理器,它使用ticks来计算时间间隔。 md5:eab16bf4737f12a8

func X创建

func X创建(选项 ...TimerOptions) *Timer

X创建 创建并返回一个计时器。 md5:3db3235abce3957a

func (*Timer) X关闭任务

func (t *Timer) X关闭任务()

X关闭任务 关闭定时器。 md5:cc2ed98b62fc4904

func (*Timer) X加入单例循环任务

func (t *Timer) X加入单例循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *Entry

X加入单例循环任务 是一个方便的函数,用于添加单例模式任务。 md5:8530c92e0f700eff

func (*Timer) X加入单次任务

func (t *Timer) X加入单次任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *Entry

X加入单次任务 是一个方便函数,用于添加一个只运行一次然后退出的工作。 md5:7674bfdda1236b76

func (*Timer) X加入循环任务

func (t *Timer) X加入循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc) *Entry

X加入循环任务 向定时器添加一个定时任务,该任务以 `interval` 为间隔运行。 md5:358decaca6313fa2

func (*Timer) X加入指定次数任务

func (t *Timer) X加入指定次数任务(上下文 context.Context, 间隔时长 time.Duration, 次数 int, 任务函数 JobFunc) *Entry

X加入指定次数任务 是一个方便的函数,用于添加一个有限运行次数的任务。 md5:98b9f39d64b7906c

func (*Timer) X加入详细循环任务

func (t *Timer) X加入详细循环任务(上下文 context.Context, 间隔时长 time.Duration, 任务函数 JobFunc, 是否单例模式 bool, 次数 int, 任务状态 int) *Entry

X加入详细循环任务 向计时器添加一个具有详细参数的定时任务。

参数 `interval` 指定任务的运行间隔。

参数 `singleton` 指定任务是否以单例模式运行。当任务为单例模式时,只允许运行一个相同的任务。

参数 `times` 指定任务的最大运行次数,即如果任务的运行次数超过 `times`,则退出。

参数 `status` 指定任务初次添加到计时器时的状态。 md5:22c21ed21d95479c

func (*Timer) X延时加入单例循环任务

func (t *Timer) X延时加入单例循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)

X延时加入单例循环任务 在延迟`delay`时间后添加一个定时任务。 另请参阅AddSingleton。 md5:4df66d0755ab0371

func (*Timer) X延时加入单次任务

func (t *Timer) X延时加入单次任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)

X延时加入单次任务 在延迟 `delay` 持续时间后添加一个定时任务。 参见 AddOnce。 md5:613532ca791628bf

func (*Timer) X延时加入循环任务

func (t *Timer) X延时加入循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc)

X延时加入循环任务 在延迟`delay`持续时间后添加一个定时任务。 参阅 Add。 md5:5db03c917e923b89

func (*Timer) X延时加入指定次数任务

func (t *Timer) X延时加入指定次数任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 次数 int, 任务函数 JobFunc)

X延时加入指定次数任务 在`delay`持续时间后添加一个定时任务。 参阅 AddTimes。 md5:8a53452ea0989047

func (*Timer) X延时加入详细循环任务

func (t *Timer) X延时加入详细循环任务(上下文 context.Context, 延时加入 time.Duration, 间隔时长 time.Duration, 任务函数 JobFunc, 是否单例模式 bool, 次数 int, 任务状态 int)

X延时加入详细循环任务 在延迟`delay`持续时间后,添加一个定时任务。 参见AddEntry。 md5:6f230211b81dca10

func (*Timer) X开始工作

func (t *Timer) X开始工作()

X开始工作 开始计时器。 md5:3330d3e996e68d8f

func (*Timer) X暂停工作

func (t *Timer) X暂停工作()

X暂停工作 stops the timer.

type TimerOptions

type TimerOptions struct {
	Interval time.Duration // (可选) Interval是计时器的基础滚动间隔刻度。 md5:4c933d7fc9ae2121
	Quick    bool          // Quick 用于快速计时器,这意味着计时器不会等待第一个间隔结束便立即触发。 md5:7b719aee1cbeb308
}

TimerOptions是Timer的配置对象。 md5:9d2942910cd72ea4

func X取单例对象

func X取单例对象() TimerOptions

X取单例对象 创建并返回一个用于创建计时器的默认选项对象。 md5:67460fb8c6e56969

Jump to

Keyboard shortcuts

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