【golang-技巧】- 定时任务 - cron

1.背景

实现

  1. 凌晨生成报表
  2. 定时刷新缓存
  3. 定时监测任务状态
  4. ...

2.实现

cron 表达式 同 java cron 无巨大差别 注意版本 有所不同

golang 复制代码
package main

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

func main() {
	c := cron.New()
	c.AddFunc("* * * * *", func() {
		fmt.Println("==== run function 1", time.Now().Format(time.RFC3339))
	})

	c.AddFunc("* * * * *", func() {
		fmt.Println("==== run function 2", time.Now().Format(time.RFC3339))
	})

	c.Start()

	t1 := time.NewTimer(time.Second * 10)

	// 阻塞程序不往下走,测试用
	for {
		select {
		case <-t1.C:
			t1.Reset(time.Second * 10)
		}
	}

}

3.结论

通过cron 实现 定时执行任务

相关推荐
X***07882 分钟前
从底层逻辑到工程实践,深入理解C语言在计算机世界中的核心地位与持久价值
c语言·开发语言
晚枫歌F7 分钟前
io_uring的介绍和实现
开发语言·php
时光追逐者19 分钟前
TIOBE 公布 C# 是 2025 年度编程语言
开发语言·c#·.net·.net core·tiobe
花归去21 分钟前
echarts 柱状图曲线图
开发语言·前端·javascript
2501_9418705639 分钟前
面向微服务熔断与流量削峰策略的互联网系统稳定性设计与多语言工程实践分享
开发语言·python
modelmd44 分钟前
Go 编程语言指南 练习题目分享
开发语言·学习·golang
带土11 小时前
4. C++ static关键字
开发语言·c++
C++ 老炮儿的技术栈1 小时前
什么是通信规约
开发语言·数据结构·c++·windows·算法·安全·链表
@大迁世界1 小时前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
栗子叶1 小时前
Java对象创建的过程
java·开发语言·jvm