diff --git a/internal/logic/systemCron/systemCron.go b/internal/logic/systemCron/systemCron.go index 0cf5b9c..9cf2c14 100644 --- a/internal/logic/systemCron/systemCron.go +++ b/internal/logic/systemCron/systemCron.go @@ -2,6 +2,9 @@ package systemCron import ( "context" + "sync" + "time" + "github.com/ayflying/utility_go/api/system/v1" "github.com/ayflying/utility_go/service" "github.com/gogf/gf/v2/frame/g" @@ -9,8 +12,6 @@ import ( "github.com/gogf/gf/v2/os/gctx" "github.com/gogf/gf/v2/os/gtime" "github.com/gogf/gf/v2/os/gtimer" - "sync" - "time" ) var ( @@ -89,7 +90,13 @@ func (s *sSystemCron) AddCron(typ v1.CronType, _func func() error) { // @receiver s: sSystemCron的实例,代表一个调度系统。 // @param typ: 任务的类型,决定该任务将被添加到哪个列表中。对应不同的时间间隔。 // @param _func: 要添加的任务函数,该函数执行时应该返回一个error。 -func (s *sSystemCron) AddCronV2(typ v1.CronType, _func func(context.Context) error) { +// @param unique: 是否只在唯一服务器上执行 +func (s *sSystemCron) AddCronV2(typ v1.CronType, _func func(context.Context) error, unique ...bool) { + //如果 + if g.Cfg().MustGet(gctx.New(), "game.cron_close").Bool() { + return + } + //加锁 s.Lock.Lock() defer s.Lock.Unlock() diff --git a/pkg/aycache/cache.go b/pkg/aycache/cache.go index 65405a0..25f7ceb 100644 --- a/pkg/aycache/cache.go +++ b/pkg/aycache/cache.go @@ -1,6 +1,7 @@ package aycache import ( + "context" "math" v1 "github.com/ayflying/utility_go/api/system/v1" @@ -33,7 +34,7 @@ var QPS = promauto.NewGauge( func init() { boot.AddFunc(func() { // 初始化指标,每分钟计算一次平均 QPS 并重置计数器 - service.SystemCron().AddCron(v1.CronType_MINUTE, func() error { + service.SystemCron().AddCronV2(v1.CronType_MINUTE, func(context.Context) error { QPS.Set(math.Round(float64(QPSCount) / 60)) QPSCount = 0 return nil diff --git a/service/ip_2_region.go b/service/ip_2_region.go index 99dc649..31b2260 100644 --- a/service/ip_2_region.go +++ b/service/ip_2_region.go @@ -7,9 +7,6 @@ package service type ( IIp2Region interface { - // Load 加载到内存中 - // - // @Description: 加载ip2region数据库到内存中。 // @receiver s *sIp2region: sIp2region的实例。 Load() GetIp(ip string) (res []string) diff --git a/service/system_cron.go b/service/system_cron.go index ca3a3fd..fdb1046 100644 --- a/service/system_cron.go +++ b/service/system_cron.go @@ -38,7 +38,8 @@ type ( // @receiver s: sSystemCron的实例,代表一个调度系统。 // @param typ: 任务的类型,决定该任务将被添加到哪个列表中。对应不同的时间间隔。 // @param _func: 要添加的任务函数,该函数执行时应该返回一个error。 - AddCronV2(typ v1.CronType, _func func(context.Context) error) + // @param unique: 是否只在唯一服务器上执行 + AddCronV2(typ v1.CronType, _func func(context.Context) error, unique ...bool) // StartCron 开始计划任务执行 // // @Description: