菜鸟之接触Golang-GinSkeleton张奇峰框架改版(一)、添加简单的定时任务

1.前言:
因为提桶了所以没事做做看
特别感谢这位大佬开源GinSkeleton张奇峰
作为脚手架是非常合适,不过有个别功能还是需要自己加一下,本次是增加定时任务功能。

2.使用

下载cron

go get github.com/robfig/cron/v3

定时代码的实现

func main() {
	c := cron.New()
	c.AddFunc("@every 1s", func() {
		fmt.Println(time.Now(), "run every 1 second")
	})
	//启动cron调度器
	c.Start()
	//阻塞,使其循环
	select {}
}

输出结果

2024-08-06 14:30:29.0038247 +0800 CST m=+0.180298301 run every 1 second
2024-08-06 14:30:30.0132059 +0800 CST m=+1.189679501 run every 1 second
2024-08-06 14:30:31.01343 +0800 CST m=+2.189903601 run every 1 second
2024-08-06 14:30:32.0139018 +0800 CST m=+3.190375401 run every 1 second
2024-08-06 14:30:33.0063456 +0800 CST m=+4.182819201 run every 1 second
2024-08-06 14:30:34.0155848 +0800 CST m=+5.192058401 run every 1 second
2024-08-06 14:30:35.0073089 +0800 CST m=+6.183782501 run every 1 second

3.进阶版
如何在定时代码块查询、修改、删除数据库操作

import导入_ “godemo/bootstrap”,主要是引入初始化数据库全局配置

import (
	"fmt"
	"github.com/robfig/cron/v3"
	_ "godemo/bootstrap"
	"time"
)

从现有的查询代码拷到定时任务里

func main() {
	c := cron.New()
	c.AddFunc("@every 1s", func() {
		cityFac := province_city.CreateProvinceCityFactory("")
		if counts, lists := cityFac.List("", 1, 0, 5); counts > 0 {
			for i := range lists {
				fmt.Println(lists[i].Name)
			}
		}
	})
	// 启动cron调度器
	c.Start()
	//阻塞,使其循环
	select {}
}

输出结果

北京
安徽
福建
甘肃
广东
北京
安徽
福建
甘肃
广东

4.结束语
做个简单定时任务需求还是可以,可能不适用于分布式,有机会研究下
如有错误,欢迎批评纠正

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值