reid from https://github.com/michuanhaohao/reid-strong-baseline
zhangmeng
2020-01-14 3c5565466db64950d797fdc3e40c599d73a3e239
run.go
@@ -15,8 +15,12 @@
   "basic.com/pubsub/protomsg.git"
   "basic.com/valib/godraw.git"
   "basic.com/valib/deliver.git"
   "github.com/gogo/protobuf/proto"
   "nanomsg.org/go-mangos"
   "nanomsg.org/go-mangos/protocol/rep"
   "nanomsg.org/go-mangos/transport/ipc"
   "nanomsg.org/go-mangos/transport/tcp"
)
type reid struct {
@@ -77,38 +81,40 @@
func Run(ctx context.Context, i interface{}) {
   s := i.(*reid)
   c := deliver.NewClient(deliver.ReqRep, s.ipc)
   sendTry := 0
   recvTry := 0
   maxTry := 30
   var msg []byte
   var sock mangos.Socket
   var err error
   var msg []byte
   for {
      if sock, err = rep.NewSocket(); err != nil {
         s.fnLogger("can't get new rep socket: ", err)
         time.Sleep(5 * time.Millisecond)
      } else {
         break
      }
   }
   sock.AddTransport(ipc.NewTransport())
   sock.AddTransport(tcp.NewTransport())
   for {
      if err = sock.Listen(s.ipc); err != nil {
         s.fnLogger("can't listen on rep socket: ", err)
         time.Sleep(5 * time.Millisecond)
      } else {
         break
      }
   }
   for {
      select {
      case <-ctx.Done():
         sock.Close()
         return
      default:
         for {
            msg, err = c.Recv()
            if err == nil {
               recvTry = 0
               break
            }
            recvTry++
            if recvTry > maxTry {
               break
            }
         if msg, err = sock.Recv(); err != nil {
            s.fnLogger("REID~~~~~~Recv From HumanTrack error: ", err)
            time.Sleep(5 * time.Millisecond)
            continue
         }
         if recvTry > maxTry {
            recvTry = 0
            continue
         }
@@ -155,20 +161,8 @@
         buf := float32SliceAsByteSlice(feat)
         ioutil.WriteFile("./reid-feat-byte.txt", buf, 0644)
         for {
            err = c.Send(buf)
            if err == nil {
               sendTry = 0
               break
            }
            if sendTry > maxTry {
               sendTry = 0
               s.fnLogger("REID~~~~~~Send HumanTrack try: ", maxTry)
               break
            }
         if err = sock.Send(buf); err != nil {
            s.fnLogger("REID~~~~~~Send HumanTrack error: ", err)
            time.Sleep(5 * time.Millisecond)
            continue
         }
      }