package Sp import ( log "github.com/sirupsen/logrus" "src/Common/DateTime" "src/Common/Unit" "src/Config" "time" ) type SpModel struct { Config *Config.Config Spid string StartTime string } func (this *SpModel) Start() { START: log.Infoln("启动SP推送媒资检测:",this.Spid," offset:",this.StartTime) config,ok := this.Config.Sps.Get(this.Spid) n:=60 if ok { conf,ok:=config.(map[string]interface{}) if ok { push_check_seconds:=conf["push_check_seconds"].(string) if push_check_seconds !="" { n = Unit.Time2Seconds(push_check_seconds) } this.push(); } } time.Sleep(time.Duration(n) * time.Second) goto START } func (this *SpModel) push() { cReqJson:=new(checkReqJson) cReqJson.Spid=this.Spid cReqJson.Start = this.StartTime cReqJson.End = DateTime.Format("YYYYMMDDhhmmss",time.Now()) mediaListModel:=new(MediaListModel) mediaListModel.Config=this.Config cRespJson,err:=mediaListModel.check(cReqJson) if err==nil { if cRespJson.PageNum>0 { config,ok:=this.Config.Sps.Get(this.Spid) if ok { conf,ok:=config.(map[string]interface{}) if ok { api_push:=conf["api_push"].(string) api_key:=conf["api_key"].(string) nOk:=0 for page := 1; page <= cRespJson.PageNum; page++ { pReqJson := new(pushReqJson) pReqJson.Start=cReqJson.Start pReqJson.End = cReqJson.End pReqJson.Spid=cReqJson.Spid pReqJson.Page=page pReqJson.PageNum=cRespJson.PageNum pReqJson.Url=api_push pReqJson.Key=api_key pRespJson,err:=mediaListModel.push(pReqJson) if err==nil { if pRespJson.Code==0 { nOk++ }else{ log.Errorf("PUSH MEDIA ERROR : reqJson:%v ,respJson:%v\n",pReqJson,pRespJson) } }else { log.Errorf("PUSH MEDIA ERROR : reqJson:%v ,respJson:%v\n",pReqJson,pRespJson) } } if nOk < cRespJson.PageNum{ log.Errorln("PUSH MEDIA ERROR : ok/total->",nOk,"/",cRespJson.PageNum) }else { log.Infoln("PUSH MEDIA SUCCESS : ",cReqJson," | ",cRespJson) this.StartTime=cReqJson.End } }else{ log.Errorln("parse sp config err!") } }else { log.Errorln("Get sp config err!") } } } }