gin框架中结合cron实现定时任务执行

gin框架中结合cron实现定时任务执行

背景:一个hr管理系统中,需要每日定时处理员工离职操作,需要每天定时执行删除账号等操作,在这使用定时任务比较方便,比如每天晚21点执行

实现方式如下:

  1. 创建定时任务
# 新建Console包,统一管理定时任务
package Console

import (
	"ali-hr/Services/Staff"
	"github.com/gookit/goutil/dump"
	"github.com/robfig/cron/v3"
)

/**
 * Created by Goland
 * User: wkk alisleepy@hotmail.com
 * Time: 2023/1/8 - 02:02
 * Desc: <统一定时任务管理>
 */

// Conrs 定时器
var Conrs *cron.Cron

// HandleCorn 定时任务入口
func init() {
	dump.P("开始处理定时任务")
	Conrs = cron.New() // 定时任务
	Conrs.Start()
	// 删除离职员工
	_, err := Conrs.AddFunc("@every 1m", Staff.DeleteStaffs) // 每隔1分钟执行一次DeleteStaffs方法
	if err != nil {
		dump.P("删除员工定时任务失败。。。")
		return
	}
}

  1. main.go中启动定时任务和关闭定时任务
# main.go中启动定时任务
import "ali-hr/Console"  // 使用init初始化机制,直接import Console包即可,会自动调用Console包中的init方法

# main.go中关闭定时任务
defer Console.Conrs.Stop()
  1. 测试执行
    image
posted @ 2023-01-08 14:03  alisleepy  阅读(1526)  评论(0编辑  收藏  举报