feat: 优化UPF流量统计逻辑

This commit is contained in:
TsMask
2025-03-03 18:06:14 +08:00
parent 93e6fdb2b8
commit c286e68845
8 changed files with 157 additions and 56 deletions

View File

@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"sync"
"time"
"be.ems/src/framework/logger"
"github.com/redis/go-redis/v9"
@@ -137,3 +138,38 @@ func SetHash(source, key string, value map[string]any) error {
}
return nil
}
// IncrBy 累加统计数据
func IncrBy(source, key, field string, value int64) error {
// 数据源
rdb := RDB(source)
if rdb == nil {
return fmt.Errorf("redis not client")
}
// 使用HINCRBY命令进行累加统计
ctx := context.Background()
err := rdb.HIncrBy(ctx, key, field, value).Err()
if err != nil {
logger.Errorf("redis HIncrBy err %v", err)
return err
}
return nil
}
// Expire 过期时间设置
func Expire(source, key string, expiration time.Duration) error {
// 数据源
rdb := RDB(source)
if rdb == nil {
return fmt.Errorf("redis not client")
}
// 过期时间设置
ctx := context.Background()
err := rdb.Expire(ctx, key, expiration).Err()
if err != nil {
logger.Errorf("redis HIncrBy err %v", err)
return err
}
return nil
}