2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 06:47:20 +08:00

feat: 优化商店缓存更新防止挤爆接口

This commit is contained in:
耗子
2024-11-18 03:54:48 +08:00
parent 17918c0f1f
commit 0297ccbf28

View File

@@ -2,8 +2,10 @@ package job
import (
"log/slog"
"math/rand/v2"
"runtime"
"runtime/debug"
"time"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/biz"
@@ -52,11 +54,13 @@ func (r *PanelTask) Run() {
}
// 更新商店缓存
if offline, err := r.settingRepo.GetBool(biz.SettingKeyOfflineMode); err == nil && !offline {
if err = r.appRepo.UpdateCache(); err != nil {
app.Logger.Warn("更新商店缓存失败", slog.Any("err", err))
time.AfterFunc(time.Duration(rand.IntN(300))*time.Second, func() {
if offline, err := r.settingRepo.GetBool(biz.SettingKeyOfflineMode); err == nil && !offline {
if err = r.appRepo.UpdateCache(); err != nil {
app.Logger.Warn("更新商店缓存失败", slog.Any("err", err))
}
}
}
})
// 回收内存
runtime.GC()