feat(cron): 添加定时任务模块

This commit is contained in:
unclesam committed 2026-07-08 08:28:41 +08:00
1 parent 20ad8115da
commit ba25a815a4
4 files changed
+40

No files matched your search

+5
View File
@@ -1,6 +1,7 @@
package main
import (
"EnGin/internal/cron"
"EnGin/internal/db"
"EnGin/internal/global"
"EnGin/internal/server"
@@ -33,6 +34,10 @@ var serverCmd = &cobra.Command{
global.Log.Fatal("初始化 Casbin 失败", zap.Error(err))
}
// 初始化定时任务
cron.InitCron()
defer cron.Stop()
// 启动 Gin 服务
server.Run()
},
+1
View File
@@ -61,6 +61,7 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/quic-go/qpack v0.6.0 // indirect
github.com/quic-go/quic-go v0.59.0 // indirect
github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/sagikazarmark/locafero v0.11.0 // indirect
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect
github.com/spf13/afero v1.15.0 // indirect
+2
View File
@@ -146,6 +146,8 @@ github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SA
github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU=
github.com/redis/go-redis/v9 v9.21.0 h1:FPBE4hhbAke+TLmcY3WkpbDffJEomdqPn3HYiqAtL9E=
github.com/redis/go-redis/v9 v9.21.0/go.mod h1:v/M13XI1PVCDcm01VtPFOADfZtHf8YW3baQf57KlIkA=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+32
View File
@@ -0,0 +1,32 @@
package cron
import (
"EnGin/internal/global"
"time"
"github.com/robfig/cron/v3"
)
// Cron 实例全局持有,方便后续管理(比如优雅退出时关闭)
var Crontab *cron.Cron
func InitCron() {
timezone, _ := time.LoadLocation("Asia/Shanghai")
Crontab = cron.New(cron.WithSeconds(), cron.WithLocation(timezone))
// 在这里注册您的定时任务
// Crontab.AddFunc("*/5 * * * * *", func() {
// global.Log.Info("定时任务执行中...")
// })
Crontab.Start()
global.Log.Info("后台定时任务启动成功")
}
func Stop() {
if Crontab != nil {
Crontab.Stop()
global.Log.Info("后台定时任务已安全停止")
}
}