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 库负责解析时间表达式并调度任务。