You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.7 KiB
73 lines
1.7 KiB
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 |
|
}
|
|
|