123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- package ugc
- import (
- appDao "go-common/app/job/main/tv/dao/app"
- "go-common/app/job/main/tv/dao/lic"
- "go-common/library/database/sql"
- "go-common/library/log"
- "time"
- )
- func (s *Service) delVideoproc() {
- defer s.waiter.Done()
- for {
- if s.daoClosed {
- log.Info("delVideoproc DB closed!")
- return
- }
- // pick deleted videos
- videoIDs, err := s.dao.DeletedVideos(ctx)
- if err != nil && err != sql.ErrNoRows {
- log.Error("videoIDs Error %v", err)
- appDao.PromError("SyncDelVid:Err")
- time.Sleep(time.Duration(s.c.UgcSync.Frequency.SyncFre))
- continue
- }
- if err == sql.ErrNoRows || len(videoIDs) == 0 {
- log.Info("No SyncDelVid Data to Sync")
- time.Sleep(time.Duration(s.c.UgcSync.Frequency.SyncFre))
- continue
- }
- if err = s.delVideoLic(videoIDs); err != nil {
- appDao.PromError("SyncDelVid:Err")
- log.Error("delLic error %v, cids %s", err, videoIDs)
- time.Sleep(time.Duration(s.c.UgcSync.Frequency.SyncFre))
- continue
- }
- appDao.PromInfo("SyncDelVid:Succ")
- }
- }
- // delVideoErr: it logs the error and postpone the videos for the next submit
- func (s *Service) delVideoErr(cids []int, fmt string, err error) {
- s.dao.PpDelVideos(ctx, cids)
- log.Error(fmt, cids, err)
- }
- // delVideoLic: sync our deleted video data to License owner
- func (s *Service) delVideoLic(videoIDs []int) (err error) {
- var (
- xmlBody string
- sign = s.c.Sync.Sign
- prefix = s.c.Sync.UGCPrefix
- )
- xmlBody = lic.DelEpLic(prefix, sign, videoIDs)
- // call api
- if _, err = s.licDao.CallRetry(ctx, s.c.Sync.API.DelEPURL, xmlBody); err != nil {
- s.delVideoErr(videoIDs, "xml call %v error %v", err)
- return
- }
- // update the videos' submit status to finish
- if err = s.dao.FinishDelVideos(ctx, videoIDs); err != nil {
- log.Info("Del Video Finish, Sync For Vids: %v", videoIDs)
- s.delVideoErr(videoIDs, "FinishDelVideos %v error %v", err)
- }
- return
- }
|