1 Star 0 Fork 1

iThings/core

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
server.go 1.63 KB
一键复制 编辑 原始数据 按行查看 历史
杨磊 提交于 2024-07-06 08:52 +08:00 . feat: 完善项目
package event
import (
"context"
"gitee.com/i-Things/core/service/timed/internal/repo/relationDB"
"gitee.com/i-Things/core/service/timed/timedjobsvr/internal/svc"
"gitee.com/i-Things/share/ctxs"
"gitee.com/i-Things/share/stores"
"github.com/zeromicro/go-zero/core/logx"
"strings"
"time"
)
type Server struct {
svcCtx *svc.ServiceContext
ctx context.Context
logx.Logger
}
func NewEventServer(ctx context.Context, svcCtx *svc.ServiceContext) *Server {
return &Server{svcCtx: svcCtx, ctx: ctx, Logger: logx.WithContext(ctx)}
}
func (s *Server) DataClean() error {
s.Info("start data clean")
ctxs.GoNewCtx(s.ctx, func(ctx context.Context) {
err := relationDB.NewJobLogRepo(ctx).DeleteByFilter(ctx, relationDB.TaskLogFilter{CreatedTime: stores.CmpLt(time.Now().Add(-time.Hour * 24 * 3))}) //只保留三天的日志
if err != nil {
logx.WithContext(ctx).Error(err)
}
})
keys, err := s.svcCtx.Redis.KeysCtx(s.ctx, "timed:sql:*:hash:*")
if err != nil {
return err
}
days := map[string]struct{}{
time.Now().Add(time.Hour * 24 * time.Duration(-1)).Format("2006-01-02"): {},
time.Now().Format("2006-01-02"): {},
}
for _, key := range keys {
fields, err := s.svcCtx.Redis.Hkeys(key)
if err != nil {
return err
}
if len(fields) == 0 { //如果没有使用了
_, err := s.svcCtx.Redis.Del(key)
return err
}
for _, field := range fields {
date, _, find := strings.Cut(field, ":")
if !find { //如果没有找到
s.svcCtx.Redis.Hdel(key, field)
}
if _, ok := days[date]; ok { //在有效期内
continue
}
s.svcCtx.Redis.Hdel(key, field)
}
}
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/i-Things/core.git
git@gitee.com:i-Things/core.git
i-Things
core
core
v0.1.6

搜索帮助