feat(cron): 添加定时任务模块
This commit is contained in:
1 parent
20ad8115da
commit
ba25a815a4
4 files changed
+40
No files matched your search
@@ -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()
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
@@ -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("后台定时任务已安全停止")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user