| | |
| | | package service |
| | | |
| | | import ( |
| | | "basic.com/pubsub/protomsg.git" |
| | | "context" |
| | | "errors" |
| | | "strconv" |
| | | "time" |
| | | "webserver/extend/config" |
| | | "basic.com/valib/logger.git" |
| | | |
| | | "google.golang.org/grpc" |
| | | ) |
| | | |
| | | func DoFDetectWithRpc(fdr *protomsg.FaceDetectRequest,t time.Duration) ([]*protomsg.ResultFaceDetect,error) { |
| | | fdUrl:=config.FaceDetectSet.Ip + ":" + strconv.Itoa(config.FaceDetectSet.Port) |
| | | conn,err := grpc.Dial(fdUrl, grpc.WithInsecure()) |
| | | if err !=nil { |
| | | logger.Debug("grpc dial err:",err) |
| | | } |
| | | defer conn.Close() |
| | | c := protomsg.NewFaceDetectClient(conn) |
| | | |
| | | ctx,cancel := context.WithTimeout(context.Background(), t) |
| | | defer cancel() |
| | | faces,err := c.FaceDetect(ctx,fdr) |
| | | if err !=nil { |
| | | logger.Debug("rpc call err:",err) |
| | | return nil,err |
| | | } |
| | | if faces !=nil { |
| | | return faces.Faces,nil |
| | | } |
| | | return nil,errors.New("no face detected") |
| | | } |