feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

View File

@@ -0,0 +1,49 @@
package jobs
import (
"time"
"goalfymax-admin/internal/config"
"goalfymax-admin/internal/services"
"goalfymax-admin/pkg/utils"
"go.uber.org/zap"
)
func StartModelTokenBalanceScheduler(cfg config.ModelTokenBalanceJobConfig, logger *utils.Logger) {
if !cfg.Enabled {
logger.Info("Model token balance scheduler disabled")
return
}
delay := time.Duration(cfg.DelayMinutes) * time.Minute
if delay < 0 {
delay = 0
}
runJob := func() {
logger.Info("Model token balance job started")
if err := services.RunModelTokenBalanceJob(); err != nil {
logger.Error("Model token balance job failed", zap.Error(err))
} else {
logger.Info("Model token balance job completed")
}
}
if cfg.RunOnStartup {
runJob()
}
go func() {
for {
now := time.Now().UTC()
next := now.Truncate(time.Hour).Add(time.Hour)
sleep := next.Sub(now) + delay
if sleep < time.Minute {
sleep = time.Minute
}
time.Sleep(sleep)
runJob()
}
}()
}