栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go定时器robfig/cron v3和robfig/cron v1使用示例

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go定时器robfig/cron v3和robfig/cron v1使用示例

cron v3和cron v1的定时器示例:

1)以下适用于cron v3的写法:

安装依赖:go get github.com/robfig/cron/v3

import (
	"github.com/robfig/cron/v3"
	"log"
)

核心代码:

在你的函数里加入如下代码:

go func() {

	// timeout示例,写法v1的相同:
	// 每12s运行一次:"@every 12s" 或 "*/12 * * * * *"
	// 每分钟的第0s执行一次:"0 */1 * * * *"

	num := 0 // 运行次数
	// 设置时区
	local, _ := time.LoadLocation("Asia/Shanghai")
	interval := cron.New(cron.WithLocation(local), cron.WithSeconds()) // 设置时区并且精度按秒。
	timeout := "0 */1 * * * *"
	intervalId, err := interval.AddFunc(timeout, func() {
		num++
		log.Println("全局定时器已开启=num=", num)

	})
	if err != nil{
		log.Println("全局定时器报错", "n error=", err, "n num=", num)
		return
	}
	log.Println("全局定时器已开启,Id=", intervalId)
	interval.Start()

	//关闭着计划任务, 但是不能关闭已经在执行中的任务.
	//defer interval.Stop()
	//select{} // 阻塞主线程而不退出

}()

打印日志:

2021/05/22 11:04:00 全局定时器已开启=num= 1
2021/05/22 11:05:00 全局定时器已开启=num= 2
2021/05/22 11:06:00 全局定时器已开启=num= 3

-

2)以下适用于cron v1的写法:

安装依赖:go get github.com/robfig/cron

import (
	"github.com/robfig/cron"
	"log"
)

核心代码:

在你的函数里加入如下代码:

go func() {

	// cron-v1时间写法示例timeout := "秒 分 时 日 月 年"
	// 每分钟的第5s、25s、45s各执行一次:5,25,45 * * * * *
	// 每12s执行一次:*/12 * * * * *
	// 每隔1分钟的第0秒执行一次:0 */1 * * * *
	// 每天23:30:00执行一次:0 30 23 * * *
	// 每天凌晨1:00:00执行一次:0 0 1 * * *
	// 每月1号早上6:00:00执行一次:0 0 6 1 * *
	// 在每小时的26分、29分、33分各执行一次:0 26,29,33 * * *
	// 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * *
    // 每天十点到十二点每五秒执行一次:*/5 * 10-12 * * *

	num := 0 // 运行次数

	interval := cron.New()
	timeout := "*/12 * * * * *"
	error := interval.AddFunc(timeout, func() {
		num++
		log.Println("全局定时器已开启=num=", num)

	})
	log.Println("全局定时器运行结果,error=", error)
	interval.Start()

}()

打印日志:

2021/05/22 10:46:12 全局定时器已开启=num= 1
2021/05/22 10:46:24 全局定时器已开启=num= 2
2021/05/22 10:46:36 全局定时器已开启=num= 3
2021/05/22 10:46:48 全局定时器已开启=num= 4
2021/05/22 10:47:00 全局定时器已开启=num= 5
2021/05/22 10:47:12 全局定时器已开启=num= 6

-

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944235.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号