在 Go 语言中,使用多种方式实现定时任务

1.使用 time 包的 After 和 Ticker 功能

1package main 2 3import ( 4 "fmt" 5 "time" 6) 7 8func main() { 9 // 单次定时任务 10 timer := time.After(5 * time.Second) 11 <-timer 12 fmt.Println("5 秒后执行的单次定时任务") 13 14 // 周期性定时任务 15 ticker := time.NewTicker(2 * time.Second) 16 defer ticker.Stop() 17 18 for range ticker.C { 19 fmt.Println("每 2 秒执行一次的周期性定时任务") 20 } 21}

2.使用第三方库 github.com/robfig/cron

1package main 2 3import ( 4 "fmt" 5 "github.com/gin-gonic/gin" 6 "github.com/robfig/cron" 7) 8 9// InitCron 初始化并启动定时任务 10func InitCron() { 11 c := cron.New() 12 13 // 每分钟的第 30 秒执行 14 c.AddFunc("30 * * * * *", func() { 15 fmt.Println("每分钟的第 30 秒执行") 16 }) 17 18 // 每 5 分钟执行 19 c.AddFunc("*/5 * * * *", func() { 20 fmt.Println("每 5 分钟执行") 21 }) 22 23 c.Start() 24} 25 26func main() { 27 r := gin.Default() 28 29 // 请求验证码的路由 30 r.GET("/getCode", func(c *gin.Context) { 31 // 此处编写生成和返回验证码的逻辑 32 c.JSON(200, gin.H{"message": "验证码已生成并返回"}) 33 }) 34 35 InitCron() 36 37 // 启动服务器,监听 8080 端口 38 if err := r.Run(":8080"); err!= nil { 39 fmt.Println("服务器启动失败:", err) 40 } 41}

在定时任务的执行函数中,根据业务可以添加开关状态决定是否执行任务。

给个关注,下期继续分享干货。

点赞
收藏

评论区

加载中...

相关推荐

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

java目前可以通过以下几种方式进行定时任务

1、单机部署模式Timer:jdk中自带的一个定时调度类,可以简单的实现按某一频度进行任务执行。提供的功能比较单一,无法实现复杂的调度任务。ScheduledExecutorService:也是jdk自带的一个基于线程池设计的定时任务类。其每个调度任务都会分配到线程池中的一个线程执行,所以其任务是并发执行的,互不影响。

java 定时任务之Timer

java定时任务之TimerTimer是什么?Timer位于java.util包中。官方API的描述是用来控制任务执行的,每个任务可以执行一次,也可以执行多次。在实际应用中,我们可以用它来控制某个任务在特定的时间执行,或者按照某个固定频率或者时间间隔执行。Timer怎么用?它提供了三类方

Java实现几分钟之后调度任务的定时器

几分钟之后执行某一操作,使用定时器Timer可以实现,Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。具体实现如下:1packagecom.aone.foottalk.common;23importjava

Linux的定时任务

任务计划的条件:1.在未来的某个时间点执行一次某个任务(atbatch)2.周期性的执行某个任务(cron)at在指定时间执行任务_用法_at\选项参数\\时间\_选项参数_\l      查看作业\c      显示即将执行任务的细节\d      使用任务id号

Synctoy2.1使用定时任务0X1

环境描述:公司需要在windows上面使用双向文件同步,目前发现SyncToy可以实现这个功能,但是在Windows2012上面,添加定时任务的时候,执行状态总是0x1,定时任务配置确认多次,肯定没有问题;同样在windows10上面设置定时任务,就能运行,在google上面查了好多帖子,都是这样,都没有解决,大多数说是windows的bug,可以使用