12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package service
- import (
- "context"
- "fmt"
- "go-common/library/log"
- "sync"
- "sync/atomic"
- )
- const (
- _stateActive = 0
- _defaultType = 23
- )
- //CommentReg 评论开关
- func (s *Service) CommentReg(c context.Context, oid int64, state int16) (err error) {
- req := map[string]interface{}{
- "oid": oid,
- "type": _defaultType,
- "adid": 0,
- "mid": 0,
- "state": state,
- }
- err = s.dao.ReplyReg(c, req)
- return
- }
- // AutoRegAll 批量注册评论
- func (s *Service) AutoRegAll(c context.Context) {
- var (
- IDs []int64
- e int
- err error
- lastID int64
- num int64
- failNum int64
- )
- for {
- IDs, lastID, _ = s.dao.GetVideoByLastID(c, lastID)
- if len(IDs) == 0 {
- break
- }
- sum := len(IDs)
- partNum := 200
- rnum := int(sum / partNum)
- log.Info("rountine start num[%d]", rnum)
- var wg sync.WaitGroup
- for i := 0; i < rnum+1; i++ {
- wg.Add(1)
- if e = (i + 1) * partNum; e > sum {
- e = sum
- }
- r := IDs[i*partNum : e]
- go func(ids []int64, k int) {
- defer wg.Done()
- for _, svid := range ids {
- err = s.CommentReg(c, svid, _stateActive)
- if err != nil {
- atomic.AddInt64(&failNum, 1)
- fmt.Printf("Comment active fail [%v]\n", err)
- log.Errorv(c, log.KV("log", fmt.Sprintf("Comment active fail [%v]", err)))
- } else {
- atomic.AddInt64(&num, 1)
- fmt.Printf("Comment active success oid:[%d]\n", svid)
- log.Infov(c, log.KV("log", fmt.Sprintf("Comment active success oid:[%d]", svid)))
- }
- }
- }(r, i)
- }
- wg.Wait()
- }
- log.Info("comment reg complete succ[%d] fail[%d]", num, failNum)
- fmt.Printf("comment reg complete succ[%d] fail[%d]", num, failNum)
- }
|