cron

package
v1.6.2 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2024 License: MIT Imports: 3 Imported by: 0

README

下面两个定时任务库执行过程,修改系统时间会导致cpu使用率暴增或卡住

https://github.com/go-co-op/gocron https://github.com/robfig/cron

// 示例任务函数
func (t *T) task1(arg1 string, arg2 int) {
	fmt.Printf("Task 1: %s, %d === %d \n", arg1, arg2, t.i)
	t.i++
}

func task2(arg1 int, arg2 string, arg3 float64) {
	fmt.Printf("Task 2: %d, %s, %.2f\n", arg1, arg2, arg3)
}

type T struct {
	i int
}

func main() {
	tm := NewTickerManager()
	var t = T{i: 0}
	// 注册多个任务,每个任务有不同的执行间隔和参数
	tm.RegisterTask(1*time.Second, t.task1, "Hello", 42)
	tm.RegisterTask(2*time.Second, task2, 100, "World", 3.14)

	// 启动定时器
	tm.Start()

	// 模拟运行一段时间后停止定时器
	time.Sleep(15 * time.Second)
	tm.Stop()

	// 可以再次启动定时器
	time.Sleep(2 * time.Second)
	tm.Start()

	// 再次模拟运行一段时间后停止定时器
	time.Sleep(15 * time.Second)
	tm.Stop()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Task

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

Task 定义一个定时任务

type TickerManager

type TickerManager struct {
	IsRunning bool
	// contains filtered or unexported fields
}

TickerManager 管理定时器的启动和停止

func NewTickerManager

func NewTickerManager() *TickerManager

NewTickerManager 创建一个新的 TickerManager 实例

func (*TickerManager) RegisterTask

func (tm *TickerManager) RegisterTask(interval time.Duration, fn interface{}, args ...interface{})

RegisterTask 注册一个定时任务,支持任意数量和类型的参数

func (*TickerManager) Start

func (tm *TickerManager) Start()

Start 启动所有定时任务

func (*TickerManager) Stop

func (tm *TickerManager) Stop()

Stop 停止所有定时任务

Jump to

Keyboard shortcuts

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