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

相关推荐
2401_853275734 分钟前
ArrayList 源码分析
java·开发语言
zyx没烦恼5 分钟前
【STL】set,multiset,map,multimap的介绍以及使用
开发语言·c++
lb36363636365 分钟前
整数储存形式(c基础)
c语言·开发语言
feifeikon7 分钟前
Python Day5 进阶语法(列表表达式/三元/断言/with-as/异常捕获/字符串方法/lambda函数
开发语言·python
大鲤余14 分钟前
Rust,删除cargo安装的可执行文件
开发语言·后端·rust
浪里个浪的102416 分钟前
【C语言】从3x5矩阵计算前三行平均值并扩展到4x5矩阵
c语言·开发语言·矩阵
MoFe123 分钟前
【.net core】【sqlsugar】字符串拼接+内容去重
java·开发语言·.netcore
Envyᥫᩣ36 分钟前
深入浅出C#编程语言
开发语言·c#
朱容君36 分钟前
Linux系统编程多线程之读写锁讲解
linux·开发语言
杰仔正在努力41 分钟前
python成长技能之枚举类
开发语言·python