增加唯一执行的参数

This commit is contained in:
ayflying
2025-08-22 12:04:26 +08:00
parent f1c22dc9e6
commit 30d30bb8c6
4 changed files with 14 additions and 8 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -7,9 +7,6 @@ package service
type (
IIp2Region interface {
// Load 加载到内存中
//
// @Description: 加载ip2region数据库到内存中。
// @receiver s *sIp2region: sIp2region的实例。
Load()
GetIp(ip string) (res []string)

View File

@@ -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: