【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 实现 定时执行任务

相关推荐
yue00816 小时前
C# 求取整数的阶乘
java·开发语言·c#
曹绍华16 小时前
android 线程loop
android·java·开发语言
树在风中摇曳16 小时前
C语言动态内存管理:从基础到进阶的完整解析
c语言·开发语言·算法
雨中散步撒哈拉16 小时前
16、做中学 | 初三上期 Golang面向对象_进阶
爬虫·python·golang
mjhcsp16 小时前
C++ 高精度计算:突破数据类型限制的实现与应用
开发语言·c++·算法·高精度
lixinnnn.16 小时前
C++: map和set
开发语言·c++
郝学胜-神的一滴17 小时前
Qt QPushButton 样式完全指南:从基础到高级实现
linux·开发语言·c++·qt·程序人生
沐知全栈开发17 小时前
R MySQL 连接
开发语言
tryxr17 小时前
变量捕获相关内容
java·开发语言·jvm
百锦再17 小时前
大型省级政务平台采用金仓数据库(KingbaseES)
开发语言·数据库·后端·rust·eclipse