Go整合cron实现定时任务

举报
海风极客 发表于 2022/10/17 22:40:15 2022/10/17
【摘要】 下载安装:go get github.com/robfig/cronv3版本安装(适用于Go 1.11版本及之后的):go get github.com/robfig/cron/v3@v3.0.0代码:package mainimport ( "fmt" "github.com/robfig/cron/v3" "time")func main() { methodB()}func metho...

下载安装:

go get github.com/robfig/cron

v3版本安装(适用于Go 1.11版本及之后的):

go get github.com/robfig/cron/v3@v3.0.0

代码:

package main

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

func main() {
	methodB()
}

func methodA() {
	c := cron.New(cron.WithSeconds()) //精确到秒级,V3版本之后提供的
	//定时任务
	spec := "*/1 * * * * ?" //cron表达式,每秒一次
	c.AddFunc(spec, func() {
		fmt.Println("methodA 每秒一次...")
	})
	c.Start()
	select {} //阻塞主线程停止
}

func methodB() {
	c := cron.New()
	//定时任务
	spec := "*/1 * * * * ?" //cron表达式,每秒一次
	c.AddFunc(spec, func() {
		fmt.Println("methodA 每秒一次...")
		time.Sleep(time.Second*5)
		c.Stop()//停止任务
	})
	c.Start()
	select {
	}
}

func methodC() {
	fmt.Println("methodC 定时任务C")
}

func methodE() {
	fmt.Println("methodC 定时任务C")
}

func methodD() {
	c := cron.New()
	//定时任务
	spec := "*/1 * * * * ?" //cron表达式,每秒一次
	c.AddFunc(spec, methodE)
	c.AddFunc(spec, methodC)
	c.Start()
	select {} //阻塞主线程停止
}

常用的cron字符串:

https://blog.csdn.net/ysq222/article/details/88965936

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。