12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package service
- import (
- "context"
- "go-common/app/job/main/reply-feed/model"
- "go-common/library/log"
- )
- // setReplySetBatch set reply set batch.
- func (s *Service) setReplySetBatch(ctx context.Context, oid int64, tp int) (err error) {
- var (
- stats []*model.ReplyStat
- rpIDs []int64
- )
- // 从DB查出满足热门评论条件的评论ID
- if rpIDs, err = s.dao.RpIDs(ctx, oid, tp); err != nil || len(rpIDs) <= 0 {
- return
- }
- // 从MC或者DB中取出reply stat
- if stats, err = s.GetStatsByID(ctx, oid, tp, rpIDs); err != nil {
- return
- }
- for _, stat := range stats {
- stat := stat
- s.statQ.Do(ctx, func(ctx context.Context) {
- s.dao.SetReplyStatMc(ctx, stat)
- })
- }
- return s.dao.SetReplySetRds(ctx, oid, tp, rpIDs)
- }
- // addReplySet add one rpID into redis reply set.
- func (s *Service) addReplySet(ctx context.Context, oid int64, tp int, rpID int64) (err error) {
- ok, err := s.dao.ExpireReplySetRds(ctx, oid, tp)
- if err != nil {
- return
- }
- if ok {
- if err = s.dao.AddReplySetRds(ctx, oid, tp, rpID); err != nil {
- return
- }
- } else {
- if err = s.setReplySetBatch(ctx, oid, tp); err != nil {
- return
- }
- }
- return
- }
- func (s *Service) remSet(ctx context.Context, oid, rpID int64, tp int) (err error) {
- if err = s.dao.RemReplySetRds(ctx, oid, rpID, tp); err != nil {
- log.Error("Remove rpID from set error (%v)", err)
- }
- return
- }
- // func (s *Service) delSet(ctx context.Context, oid int64, tp int) (err error) {
- // if err = s.dao.DelReplySetRds(ctx, oid, tp); err != nil {
- // log.Error("delete reply set(oid: %d, type: %d)", oid, tp)
- // }
- // return
- // }
- // func (s *Service) delReply(ctx context.Context, oid int64, tp int) {
- // var err error
- // if err = s.delSet(ctx, oid, tp); err != nil {
- // s.replyListQ.Do(ctx, func(ctx context.Context) {
- // s.delSet(ctx, oid, tp)
- // })
- // }
- // if err = s.delZSet(ctx, oid, tp); err != nil {
- // s.replyListQ.Do(ctx, func(ctx context.Context) {
- // s.delZSet(ctx, oid, tp)
- // })
- // }
- // }
- func (s *Service) remReply(ctx context.Context, oid int64, tp int, rpID int64) {
- var err error
- if err = s.remSet(ctx, oid, rpID, tp); err != nil {
- s.replyListQ.Do(ctx, func(ctx context.Context) {
- s.remSet(ctx, oid, rpID, tp)
- })
- }
- if err = s.remZSet(ctx, oid, tp, rpID); err != nil {
- s.replyListQ.Do(ctx, func(ctx context.Context) {
- s.remZSet(ctx, oid, tp, rpID)
- })
- }
- }
|