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

相关推荐
沐知全栈开发3 小时前
PHP MySQL 插入数据详解
开发语言
自由会客室4 小时前
在 Ubuntu24.04 上安装 JDK 21(Java 21)
java·开发语言
猫梦www4 小时前
力扣21:合并两个有序链表
数据结构·算法·leetcode·链表·golang·力扣
喜欢读源码的小白4 小时前
SpringBoot的启动流程原理——小白的魔法引擎探秘
java·开发语言·spring boot·springboot启动原理
夜幽青玄4 小时前
mybatis-plus调用报 org.springframework.dao.DataIntegrityViolationException 错误处理
开发语言·python·mybatis
洲覆4 小时前
Redis 内存淘汰策略
开发语言·数据库·redis·缓存
偶尔贪玩的骑士5 小时前
Kioptrix Level 1渗透测试
linux·开发语言·网络安全·php
それども5 小时前
忽略Lombok构建警告
java·开发语言·jvm
qiuiuiu4135 小时前
正点原子RK3568学习日志12-注册字符设备
linux·开发语言·单片机·学习·ubuntu
liu****5 小时前
20.哈希
开发语言·数据结构·c++·算法·哈希算法