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

相关推荐
honder试试22 分钟前
焊接自动化测试平台图像处理分析-模型训练推理
开发语言·python
^Rocky28 分钟前
JavaScript性能优化实战
开发语言·javascript·性能优化
ponnylv1 小时前
深入剖析Spring Boot启动流程
java·开发语言·spring boot·spring
萧邀人1 小时前
第一课、Cocos Creator 3.8 安装与配置
开发语言
YGGP1 小时前
3D 版接雨水
golang
Jayden_Ruan2 小时前
C++逆向输出一个字符串(三)
开发语言·c++·算法
不吃鱼的羊2 小时前
启动文件Startup_vle.c
c语言·开发语言
VBA63372 小时前
VBA之Word应用第四章第二节:段落集合Paragraphs对象(二)
开发语言
点云SLAM3 小时前
C++ 常见面试题汇总
java·开发语言·c++·算法·面试·内存管理
xiaowu0803 小时前
策略模式-不同的鸭子的案例
开发语言·c#·策略模式