Skip to main content

go corn

当然,这里有一个简单的例子,展示如何使用 github.com/robfig/cron/v3 库来添加和管理定时任务。

通过函数添加任务

package main

import (
"fmt"
"github.com/robfig/cron/v3"
"time"
)

func main() {
c := cron.New()

// 添加一个每分钟运行一次的任务
c.AddFunc("* * * * *", func() {
fmt.Println("每分钟执行一次的任务:", time.Now())
})

// 启动调度器
c.Start()

// 运行一段时间后停止
time.Sleep(5 * time.Minute)
c.Stop()
}

通过接口添加任务

package main

import (
"fmt"
"github.com/robfig/cron/v3"
"time"
)

// 定义一个实现了 Run 方法的任务
type MyTask struct{}

func (m MyTask) Run() {
fmt.Println("接口任务执行:", time.Now())
}

func main() {
c := cron.New()

// 添加一个每分钟运行一次的接口任务
task := MyTask{}
c.AddJob("* * * * *", task)

// 启动调度器
c.Start()

// 运行一段时间后停止
time.Sleep(5 * time.Minute)
c.Stop()
}

解释

  • 通过函数:直接传递一个匿名函数作为任务逻辑。
  • 通过接口:定义一个结构体,实现 Run() 方法,然后传递该结构体实例。

这两种方式都可以让你在指定的时间间隔执行任务。cron 库负责解析时间表达式并调度任务。