74 lines
1.7 KiB
Go
74 lines
1.7 KiB
Go
package archive
|
|
|
|
import (
|
|
"context"
|
|
"strconv"
|
|
"time"
|
|
|
|
"go-common/app/interface/main/videoup/model/archive"
|
|
"go-common/library/cache/redis"
|
|
"go-common/library/log"
|
|
)
|
|
|
|
const (
|
|
_upFavTpsPrefix = "up_fav_tps_"
|
|
)
|
|
|
|
func keyUpFavTpsPrefix(mid int64) string {
|
|
return _upFavTpsPrefix + strconv.FormatInt(mid, 10)
|
|
}
|
|
|
|
// FilenameExpires get filename expire time.
|
|
func (d *Dao) FilenameExpires(c context.Context, vs []*archive.VideoParam) (ves []*archive.VideoExpire, err error) {
|
|
var conn = d.redis.Get(c)
|
|
defer conn.Close()
|
|
for _, v := range vs {
|
|
conn.Send("GET", v.Filename)
|
|
}
|
|
if err = conn.Flush(); err != nil {
|
|
log.Error("conn.Flush() error(%v) | vs(%#v)", err, vs)
|
|
return
|
|
}
|
|
for _, v := range vs {
|
|
var exp int64
|
|
if exp, err = redis.Int64(conn.Receive()); err != nil && err != redis.ErrNil {
|
|
log.Error("conn.Receive error(%+v) | filename(%s)", err, v.Filename)
|
|
return
|
|
}
|
|
err = nil // NOTE: maybe err==redis.ErrNil
|
|
ves = append(ves, &archive.VideoExpire{
|
|
Filename: v.Filename,
|
|
Expire: exp,
|
|
})
|
|
}
|
|
return
|
|
}
|
|
|
|
// FreshFavTypes fn
|
|
func (d *Dao) FreshFavTypes(c context.Context, mid int64, tp int) (err error) {
|
|
var (
|
|
conn = d.redis.Get(c)
|
|
score = time.Now().Unix()
|
|
)
|
|
defer conn.Close()
|
|
if err = conn.Send("ZADD", keyUpFavTpsPrefix(mid), score, strconv.Itoa(tp)); err != nil {
|
|
log.Error("conn.Send(ZADD, %s, %d) error(%v)", _upFavTpsPrefix, tp, err)
|
|
return
|
|
}
|
|
if err = conn.Flush(); err != nil {
|
|
log.Error("conn.Flush error(%v)", err)
|
|
return
|
|
}
|
|
if _, err = conn.Receive(); err != nil {
|
|
log.Error("conn.Receive() error(%v)", err)
|
|
}
|
|
return
|
|
}
|
|
|
|
func (d *Dao) pingRedis(c context.Context) (err error) {
|
|
conn := d.redis.Get(c)
|
|
_, err = conn.Do("SET", "PING", "PONG")
|
|
conn.Close()
|
|
return
|
|
}
|