go定时读取mysql_golang 定时任务

需求

我将一部分事件日志存储到了 MySQL 上,只有最近几天的有参考价值,所以需要每天定时删除早期的日志,以节省存储空间。

技术选型

自从用了 Laravel 的定时任务之后,我就再也不喜欢用 Linux 系统自带的 crontab 了,因为部署时还需要手动配置。

项目多了之后,就容易忘记。不如在 web 服务框架中直接写,不容易遗忘。

golang 的计划任务三方库

https://godoc.org/github.com/robfig/cron

是否需要配置 crontab

golang 的这个实现,跟 laravel 的不太一样,不需要再配置一次 crontab。

实际上是开了个 goroutine.

Funcs are invoked in their own goroutine, asynchronously.

依赖安装

go get github.com/robfig/cron/v3@v3.0.0

代码目录结构

在 gin web 项目中,相对在 main 函数中列一堆 c.AddFunc,我觉得把所有定时任务的代码都放到一个文件中管理比较清晰。

例如,在项目根目录下新建一个 cron.go 文件

package main

import (

"fmt"

"github.com/robfig/cron/v3"

)

func start_cron() {

c := cron.New()

c.AddFunc("* * * * *", func() { fmt.Println("OK") })

c.Start()

}

然后在 gin 的 main 函数中调用 start_cron().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值