liuxiaolong
2019-06-29 53b54bc26ee7cec79da12a07f5af0aa4e44c2206
service/FaceSdkService.go
@@ -19,6 +19,7 @@
type FaceSdkService struct {
   File *multipart.File
   Id string
   Result []*protomsg.ResultFaceExtCom
}
const (
@@ -115,33 +116,29 @@
   }
}
func (s *FaceSdkService) GetFaceFea() (feas []*protomsg.ResultFaceExtCom,err error){
func (s *FaceSdkService) GetFaceFea(){
   var wg sync.WaitGroup
   wg.Add(1)
   ch := make(chan []*protomsg.ResultFaceExtCom,0)
   go func() {
   ticker := time.NewTicker(time.Second * 2)
   go func(ticker *time.Ticker, s *FaceSdkService) {
      defer ticker.Stop()
      defer wg.Done()
      for {
         select {
         case <-time.Tick(time.Second*10):
            ch <- nil
            wg.Done()
         case <-ticker.C:
            fmt.Println("timeout!")
            return
         default:
            if feas,ok := resultMap[s.Id];ok {
               fmt.Println("faceFea got!!!")
               ch <- feas
               s.Result = feas
               return
            }
         }
      }
   }()
   }(ticker, s)
   wg.Wait()
   msg := <- ch
   if msg != nil {
      return msg,nil
   } else {
      return msg,errors.New("no fea")
   }
}
func readTestImgFile() protomsg.Image{